简短的问题:我可以使用<p:commanLink>
查看ViewScoped bean重新初始化吗?
我的情况:使用
动态包含两个页面(page1.xhtml,page2.xhtml)<ui:include src="#{myBean.pageId}"/>
我有<p:commandLink>
从page1切换到page2。在第2页中,有一个<p:dataTable>
,其中包含一个关联的ViewScoped
支持bean。数据使用@PostConstruct
方法加载,每次访问视图时都必须再次加载。有没有办法强制它,或者我必须改变bean的范围?
新视图范围应该准确解决这些问题。一个@ViewScoped 只要您将表单提交到同一视图,bean就会存在 一次又一次。换句话说,只要行动方法 返回null或甚至是void,bean将在下一个请求中出现。 导航到不同的视图后,bean将被删除。
我尝试过以下方式......
<p:commandLink action="newview" actionListener="#{myBean.goToPage2}" ajax="false">
但PostConstruct方法仅在第一次调用。
更新(查看重复的问题链接)
我仍然不明白,我尝试使用动作方法并返回一个空字符串,但每次按下链接时都不会重新创建ViewScoped bean。