我有一个包含2个Beans的Jsf表单。 First Bean范围:Session。第二个Bean范围:请求。
当通过First Bean将某些值添加到第二个Bean时,更新的值不会显示在表单中。我不知道该怎么做。请帮帮我。
答案 0 :(得分:1)
您要么触发了一个重定向,这导致请求范围bean被更新,或者在错误的时刻更新了值,导致它们在JSF生命周期中被覆盖
要解决第一个问题,请确保您未在导航案例中包含<redirect/>
,也未在bean操作方法中调用ExternalContext#redirect()
。要修复第二个,请运行调试器。 This article也可以帮助理解JSF引擎盖下发生的事情。
答案 1 :(得分:0)
BalusC已经说明了解决这个问题的可能原因。
如果是重定向,则删除重定向可以解决问题,但会添加另一个 - 如果用户刷新页面,则会要求用户重新提交表单。
从一个页面到另一个页面实现此类转换的首选方法是使用对话。 MyFaces Orchestra提供了一个特殊的会话范围来解决这个问题以及更多问题。