在设置了所有URL请求参数之后,我需要对JSF1.1 bean执行一些初始化。有没有好的方法呢?例如,如果像下面这样在faces-config中设置管理bean,我需要在设置完所有参数(Param1,2,3)之后执行一些初始化。
<managed-bean>
<managed-bean-name>someBean</managed-bean-name>
<managed-bean-class>com.arch.SomeBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>param1</property-name>
<value>#{param.param1}</value>
</managed-property>
<managed-property>
<property-name>param2</property-name>
<value>#{param.param2}</value>
</managed-property>
<managed-property>
<property-name>param3</property-name>
<value>#{param.param3}</value>
</managed-property>
</managed-bean>
发布于 2013-05-24 21:17:35
通常,您将使用带@PostConstruct
注释的方法来实现这一点,但是对@PostConstruct
的支持仅在JSF1.2之后才可用。
最好的办法是在托管属性的setter方法中懒惰地执行它。例如。
public void setParam3(String param3) {
boolean wasNull = this.param3 == null;
this.param3 = param3;
if (wasNull) {
init();
}
}
另请参阅:
或者,只需升级到JSF 1.2。JSF 1.1与JSF 1.2完全向前兼容,无需对代码进行任何更改(如果在中错误地假设JSF 1.1特定的bug是正确的行为,则会出现这种情况)。
https://stackoverflow.com/questions/16735469
复制相似问题