我正在构建一个通知系统,需要存储给定用户上次访问给定组的私人(或单独公开)页面的时间。
有没有办法构建一个每次加载新页面时都会触发的侦听器?
谢谢, 阿兰
答案 0 :(得分:2)
你走在正确的轨道上!
首先在你的插件中创建/WEB-INF/liferay-hook.xml
。写:
<hook>
<portal-properties>portal.properties</portal-properties>
</hook>
接下来,创建/WEB-INF/src/portal.properties
。使用侦听器类定义servlet.service.events.pre
:
servlet.service.events.pre=com.example.hook.events.ServicePreAction
接下来,创建该类:
package com.example.hook.events;
import com.liferay.portal.kernel.events.Action;
import com.liferay.portal.kernel.events.ActionException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServicePreAction extends Action {
@Override
public void run(HttpServletRequest request, HttpServletResponse response)
throws ActionException {
}
}
从那里你可以从请求中获取ThemeDisplay
对象,其中包含你需要的所有信息。