我需要在调用JSF页面时设置一些值。所以我查看了生命周期方法,认为我可以覆盖,例如,restoreView方法,以便可以将页面的某些属性设置为null。但我似乎无法找到任何人这样做的例子。如果你能指点我一个教程或一个例子,或者让我知道这样做的正确方式 - 我将不胜感激。谢谢!覆盖JSF生命周期方法
大声思考:也许在xhtml代中有一个阶段,当我可以调用backing bean上的方法,并且在渲染其他东西之前设置我的值?
我需要在调用JSF页面时设置一些值。所以我查看了生命周期方法,认为我可以覆盖,例如,restoreView方法,以便可以将页面的某些属性设置为null。但我似乎无法找到任何人这样做的例子。如果你能指点我一个教程或一个例子,或者让我知道这样做的正确方式 - 我将不胜感激。谢谢!覆盖JSF生命周期方法
大声思考:也许在xhtml代中有一个阶段,当我可以调用backing bean上的方法,并且在渲染其他东西之前设置我的值?
根据您的问题历史记录,您使用的是JSF 2.0。所以,这应该这样做:
<f:event type="preRenderView" listener="#{bean.preRenderView}" />
与
public void preRenderView() {
this.some = null;
// ...
}
这使得但是很少感,我不禁具有您正在寻找在错误的方向上的解决方案的印象。
再次感谢BalusC。是的,我正在使用jsf 2,下次我将确保正确标记。您提供的解决方案非常优雅!我想这也适用于其他领域,比如验证。唯一的问题是我仍然看不到调用的方法。我的f:事件标签位于表单内,并且该方法位于bean中。我错过了什么? – Herzog
它适用于我(Mojarra 2.1.4,但应该在旧版本上同样好)。它可以作为每个“UIComponent”和“
感谢您的伟大文章,BalusC。我对JSF 2的优雅印象非常深刻。至于我的功能需求,我还在研究[link](http://stackoverflow.com/questions/8201634/fajax-inside-uirepeat)我可以得到纠正出价视图打开,但当用户单击重复中的另一行时,或者导航到其他页面并返回时,我无法关闭它。将bidViews映射设置为null,或者在auctionBidViews.showBidView(parcel)中放置不同的宗地无济于事。这就是为什么我要在生命周期中寻找一个可以将bidViews地图设置为空的点,然后重新开始。 – Herzog
在未来的问题中,如果您使用的是JSF 2.0,请提及并标记这一点。与JSF 1.x的区别非常大,答案不可交换,或者对JSF 2.x来说更好/更好。 – BalusC