liferay实现model监听

liferay plugin项目中选择hook,或者在portlet中,src/main/webapp/WEB-INF下添加liferay-hook.xml

代码如下:

<?xml version="1.0"?>
<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.2.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_2_0.dtd">

<hook>
<portal-properties>portal.properties</portal-properties>
</hook>


之后在src源目录下添加portal.properties,内容为:

value.object.listener.com.liferay.portal.model.Group=test.MyGroupListener

其中,test.MyGroupListener为test包下MyGroupListener侦听类,此为Group的侦听。


package test;

import com.liferay.portal.ModelListenerException;
import com.liferay.portal.model.BaseModelListener;
import com.liferay.portal.model.Group;

public class MyGroupListener extends BaseModelListener<Group> {

    @Override
    public void onAfterCreate(Group group) throws ModelListenerException {
        
      System.out.println("group  添加="+group.getName()+group.getClassName());
        
    }
    @Override
    public void onAfterUpdate(Group group) throws ModelListenerException {
       System.out.println("group  添加更新后="+group.getName());
    }
    @Override
    public void onBeforeUpdate(Group group) throws ModelListenerException {
           System.out.println("group  添加更新前="+group.getName());
    }
}




添加站点后,输出为:

group  添加=ccccccccccccom.liferay.portal.model.Group

group  添加更新前=ccccccccccc

group  添加更新后=ccccccccccc


对于users_groups表的监听,其是在group群组中,添加该群组的成员,其对应的是关系的添加

/*
     * classPK此时为groupId,associationClassPK为userId
     * */
    @Override
    public void onAfterAddAssociation(
            Object classPK, String associationClassName,
            Object associationClassPK)
        throws ModelListenerException {
        
        try {
              if ("com.liferay.portal.model.User".equals(associationClassName)) {
                    System.out.println("监听群组添加成员");
                    //输出格式为:26873#com.liferay.portal.model.User#14212 associationClassName Modified.
                    System.out.println(classPK.toString() + "#" + associationClassName + "#" + associationClassPK.toString()
                            + " associationClassName Modified.");    
                    
                    String groupId=classPK.toString();//群组的ID号
                    String userId=associationClassPK.toString();//用户的ID号
                    
                    
                    
                    
              }
        }
        catch (Exception e) {
            throw new ModelListenerException(e);
        }
    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值