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 添加更新前=cccccccccccgroup 添加更新后=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);
}
}
301

被折叠的 条评论
为什么被折叠?



