在为先前的请求呈现响应之前,将数据预加载到JSF页面中

时间:2010-02-19 06:43:18

标签: jsf

我是JSF的初学者。我正在构建一个应用程序,其中来自数据库的用户详细信息的登录名将显示在另一个JSP中。我为所有jsp页面使用了托管bean(JSF)我已经在faces-config XML中将其范围定义为请求。登录详细信息时,我的登录页面中的actionListener方法会验证。在离开这个方法之前,我试图设置下一页的托管bean的属性。但我设置的状态未保留在第二页中。我错过了什么

P.S。如果之前询问过此问题并请回答,请重定向我。

谢谢

1 个答案:

答案 0 :(得分:2)

两个请求之间的边界是从托管bean操作返回导航结果时。然后,重定向(如果已配置)将触发该结果。

您有三种选择:

  • 不要在导航规则中使用<redirect /> - 因此即使您在提交后显示其他页面,也会保留在同一请求中。缺点是这会损害用户体验 - 如果按下刷新,则会出现丑陋的“重新提交”对话框
  • 使用session范围 - 这在小剂量下无害,但要注意不要有太多会话范围的豆。
  • 使用对话框架(如MyFaces Orchestra) - 定义一个名为“conversation.access”的自定义范围 - 只要需要,您的数据就可以访问。
  • 使用richfaces中的<a4j:keepAlive> - 首选于ajax-requests。