2011-10-06 128 views
0

我有一个JSF应用程序,用户从另一个站点(假设test.com)调用该应用程序。当从test.com调用我的应用程序时,它向我发送一个get参数,并基于此参数决定需要应用哪个样式表。将过期的会话变量值传递给后续请求

例呼叫:myapp.com?style=aaa

基于风格参数我申请MyApp的样式表。在这里,我可以从样式参数值中找到样式表,并将其保存在会话中供其他页面使用。

问题:

当Tomcat会议为止我松我的风格的信息和我的网站去一个默认样式表(用户按浏览器的重新加载按钮或提交会议期满后一种形式)。即使会话过期后,我仍然可以保留样式表信息。

我不能将样式信息作为应用程序级参数,因为它基于test.com调用进行更改。

感谢

回答

1

如果你只是想记住的样式表,它很可能是更好的样式表参数写入到一个cookie,而不是在HttpSession。这样,当会话过期并且用户返回时,他们仍然会看到他们选择的样式表。

但是,如果他们删除他们的Cookie或您的Cookie过期,他们将得到默认的样式表。

快速谷歌想出了这个cookie的例子http://gthill.blogspot.com/2008/01/cookies-in-jsf.html

+0

感谢您的答复。一个用户可能在myapp.com上有多个登录。有多个电话可以来自单个浏览器,如myapp.com?style = aaa,myapp.com?style = bbb。所以使用Cookie可能很困难。 – era

0

一个用户可能在myapp.com许多登录。有多个电话可以来自单个浏览器,如myapp.com?style = aaa,myapp.com?style = bbb。所以使用Cookie可能很困难。

你需要把它加为<f:param>所有形式和所有的JSF页面链接保持周围传递样式请求参数。

例如

<h:link value="link" outcome="nextpage"> 
    <f:param name="style" value="#{param.style}" /> 
</h:link> 

<h:commandButton value="submit" action="#{someBean.someAction}"> 
    <f:param name="style" value="#{param.style}" /> 
</h:commandButton>  
相关问题