Liferay和ZK集成:用户信息

时间:2012-03-26 03:18:09

标签: liferay portlet portal zk

我写了一个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?

2 个答案:

答案 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会话在您的应用中获取这些参数

如果您想了解更多信息

Follow this link

它包含您想要的所有信息...... :)

答案 1 :(得分:0)

Execution exe = Executions.getCurrent();
Session session = Sessions.getCurrent();
PortletSession ps = (PortletSession) session.getNativeSession();
User user = PortalUtil.getUser((HttpServletRequest) exe.getNativeRequest());
user.getUserId();