我有一个关于会话超时和 JSF 2 的问题。我的异常处理程序完全按照每个人都喜欢的方式工作,但我需要将一个值传递给登录页面。例如,我有一个典型的登录 URL - www.acme.com/?companyId=company14,它反过来为 company14 提供了他们自己的自定义登录页面(使用他们的徽标)。在他们进入应用程序并完成一些工作后,他们会阅读一封电子邮件或 2 封电子邮件。会话超时并显示会话超时页面,指示用户单击“确定”以继续登录页面。如何将 ?companyId=company14 添加到 URL?我可以使用以下方法在异常处理程序中对其进行硬编码:
requestMap.put("companyId", "company14");
然后在 viewExpired.xhtml 页面上引用它:
<h:panelGrid id="expiredGrid" columns="1">
<f:facet name="header">
<h:outputText id="outExpireMsg" value="Your session has expired"/>
</f:facet>
<h:outputText id="outReqMessage" value="Reloading the page will require login."/>
<h:outputText value=""/>
<h:button id="okButton" type="submit" value="Ok" outcome="login?companyId=#{companyId}"/>
</h:panelGrid>
问题是我似乎无法将 companyId 保存在任何地方,而不会被会话超时清除。我想使用这个值在异常处理程序中设置 companyId。有任何想法吗?