我写了一个portlet并加入了liferay。
我找到了从cookie获取用户名的方法: https://www.everit.biz/web/guest/blog/-/blogs/getting-current-liferay-user-in-a-standalone-webapp?_33_redirect=/web/guest/blog
我已经研究过zk liferay包,只有JQuery相关的类。 http://www.zkoss.org/javadoc/6.0.0/zk/org/zkoss/zkplus/liferay/package-summary.html
有没有办法让当前用户进入ZK?
答案 0 :(得分:1)
遵循简单模式
在主入口控制器类中,扩展 DHtmlLayoutPortlet
的类在处理方法中,您可以将liferay的 commonParameter 设置为 zk-session
我正在为您提供代码段:
@Override
protected boolean process(Session sess, RenderRequest request,
RenderResponse response, String path, boolean bRichlet)
throws PortletException, IOException {
setupSessionParameters(sess, request);
return super.process(sess, request, response, path, bRichlet);
}
protected void setupSessionParameters(Session sess, RenderRequest request) {
ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
PortletSession portletSession = request.getPortletSession();
PortletPreferences prefs = request.getPreferences();
sess.setAttribute("SESSION_ID", portletSession.getId());
sess.setAttribute("THEME_DISPLAY", themeDisplay);
sess.setAttribute("GROUP_ID", themeDisplay.getScopeGroupId());
sess.setAttribute("PORTLET_PREFERENCES", prefs);
sess.setAttribute("PORTLET_ID", themeDisplay.getPortletDisplay().getId());
sess.setAttribute("currentUser", themeDisplay.getUser().getScreenName());
}
使用 zk会话在您的应用中获取这些参数
如果您想了解更多信息
它包含您想要的所有信息...... :)
答案 1 :(得分:0)
Execution exe = Executions.getCurrent();
Session session = Sessions.getCurrent();
PortletSession ps = (PortletSession) session.getNativeSession();
User user = PortalUtil.getUser((HttpServletRequest) exe.getNativeRequest());
user.getUserId();