0
我目前正在JSF Bean上使用ViewScope进行测试Viewscoped bean在返回相同视图时不保留它的状态?
我注意到了这种行为。
有此按钮:
<p:commandButton value="Submit Data to Server"
ajax="false" update="debugPanel" />
我可以看到postconstruct只发生一次,并通过该按钮触发提交行得触发postconstruct,这是正确的,因为它的返回到了同样的观点。
但是,当我加修改我的按钮变成这样:
<p:commandButton value="Submit Data to Server"
ajax="false" update="debugPanel"
action="viewScope2.xhtml?faces-redirect=false"/>
我可以看到postconstruct方法被调用每一个提交,这意味着豆犯规保留它的状态,尽管它actualy返回同一视图。我想这是因为redirectin的,所以我忽略它,并且按钮变成是这样的:
<p:commandButton value="Submit Data to Server"
ajax="false" update="debugPanel"
action="viewScope2.xhtml"/>
但尽管如此,该postconstruct方法被调用每一个提交,这是不desireable。
是否有可能有这样的理想主义:
无论是明示或 (通过行动 方法的返回“myview.xhtml”通过属性或 )implicily定义,无论是使用重定向 或者不是,当 返回到相同的视图时,viewscoped bean将始终保留它的状态 。
请分享您的观点!
谢谢.....
您是否实现了http://stackoverflow.com/questions/5416070/jsf-2-and-post-redirect-get?这可能是原因。 – BalusC 2011-03-25 10:34:14
@BalusC:不,我没有在这种情况下。由于没有明确说明目标视图,它仍然可以正常工作,这是原始帖子中的第一种情况。 – bertie 2011-03-26 02:20:52