JSF 1.0 / 1.1
只需将所需的逻辑放入与JSF页面关联的请求范围的bean的构造函数中即可。
public Bean() { // Do your stuff here.}
JSF 1.2 / 2.x
@PostConstruct在请求或视图范围的bean上使用带注释的方法。将在构造和初始化/设置所有托管属性和注入的依赖项之后执行它。
@PostConstructpublic void init() { // Do your stuff here.}
如果您使用的是使用代理(例如CDI)的bean管理框架,则强烈建议在构造方法上使用此方法,因为在您期望的时间可能不会调用该构造方法。
JSF 2.0 / 2.1
或者,
<f:event type="preRenderView">在您打算基于进行初始化的情况下
<f:viewParam>,或者在将bean放置在比视图范围更广的范围时使用(这反过来表明存在设计问题,但在此范围之外)。否则,a@PostConstruct也很好。
<f:metadata> <f:viewParam name="foo" value="#{bean.foo}" /> <f:event type="preRenderView" listener="#{bean.onload}" /></f:metadata>public void onload() { // Do your stuff here.}
JSF 2.2以上
或者,
<f:viewAction>在您打算基于进行初始化的情况下
<f:viewParam>,或者在将bean放置在比视图范围更广的范围时使用(这反过来表明存在设计问题,但在此范围之外)。否则,a@PostConstruct也很好。
<f:metadata> <f:viewParam name="foo" value="#{bean.foo}" /> <f:viewAction action="#{bean.onload}" /></f:metadata>
public void onload() { // Do your stuff here.}
请注意,String如果需要,这可以返回导航情况。它将被解释为重定向(因此您无需在
?faces-redirect=true此处)。
public String onload() { // Do your stuff here. // ... return "some.xhtml";}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)