websphere portal 8.0使用PortletSession.APPLICATION_SCOPE共享会话变量

时间:2015-05-06 15:27:52

标签: websphere-portal

我正在使用websphere portal 8.0并使用下面的api在一个面孔托管bean中设置会话变量..

PortletRequest request = (PortletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
PortletSession session=request.getPortletSession(false);
session.setAttribute("Name", pName,PortletSession.APPLICATION_SCOPE);

在另一个托管bean中的另一个请求中,我试图检索会话变量但是它返回null。这是一个单一的portlet应用程序。

PortletRequest request2 = (PortletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
PortletSession session=request2.getPortletSession(false);
session.getAttribute("Name",PortletSession.APPLICATION_SCOPE);

1 个答案:

答案 0 :(得分:0)

如果您想在JSF中使用共享变量,请使用以下方法:

@SuppressWarnings("unchecked")
public static <T> T findBean(String beanName) {
    FacesContext context = FacesContext.getCurrentInstance();

    return (T) findBean(beanName, context);
}

@SuppressWarnings("unchecked")
public static <T> T findBean(String beanName, FacesContext context) {
    return (T) context.getApplication()
                      .evaluateExpressionGet(context,
        "#{" + beanName + "}", Object.class);
}

它在Web应用程序中获取ManageBean实例。然后,您可以访问方法get和set。