liferay实现model监听

来源:互联网 发布:检测电脑硬件故障软件 编辑:程序博客网 时间:2024/05/29 12:49

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);
        }
    }




0 0
原创粉丝点击