Jakarta ee 如何将信息从servlet获取到JBossPortal2.5.4中的portlet中

Jakarta ee 如何将信息从servlet获取到JBossPortal2.5.4中的portlet中,jakarta-ee,jboss,jboss-portal,Jakarta Ee,Jboss,Jboss Portal,我有一个基于JBossPortal2.5.4的门户,它需要一些I18N。在login.jsp页面(位于portal server.war中),我们添加了一个语言开关。页面上的链接之一是“忘记密码”功能 出于与外观相关的原因,ForgetPassword页面在我们的JBoss门户中实现为一个最大化的portlet。但是,很明显,还没有用户对象,因为还没有登录 那么,如何将用户在login.jsp上选择的区域设置信息向下传递到忘记密码jsp中呢 我试过: 会话变量(不行,它们不会跨越战争) coo

我有一个基于JBossPortal2.5.4的门户,它需要一些I18N。在login.jsp页面(位于portal server.war中),我们添加了一个语言开关。页面上的链接之一是“忘记密码”功能

出于与外观相关的原因,ForgetPassword页面在我们的JBoss门户中实现为一个最大化的portlet。但是,很明显,还没有用户对象,因为还没有登录

那么,如何将用户在login.jsp上选择的区域设置信息向下传递到忘记密码jsp中呢

我试过:

  • 会话变量(不行,它们不会跨越战争)
  • cookies(JBoss门户会吞下它们)
  • URL参数(JBoss门户也接受它们)
  • System.setProperty()-当它们到达ForgetPassword jsp时,它们被重置
这些都是在WindowsVista或2003上运行的


有没有什么明显的技巧我不知道?我是否需要咬紧牙关,将我的ForgetPasswordPage重新组织为一个servlet,以便获取URL参数?

好的,我找到了一种机制来实现这一点——在portal-object.xml中创建一个新的portlet窗口(ForgotPasswordWindow\u de):

<window>
    <window-name>ForgotPasswordWindow_de</window-name>
    <instance-ref>UserMgmtPortletInstance_de</instance-ref>
    <region>center</region>
<height>0</height>
</window>
然后,在jsp中,我查看属性,并设置区域设置

String locale = (String) request.getAttribute("lang");
首先,登录页面有一个开关,如果语言是德语,它调用ForgotPasswordWindow\u de而不是ForgotPasswordWindow\u en

    String lang = request.getPreferences().getValue("lang", null);

    request.setAttribute("lang", lang);
String locale = (String) request.getAttribute("lang");