首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置请求参数后的初始JSF1.1 bean

设置请求参数后的初始JSF1.1 bean
EN

Stack Overflow用户
提问于 2013-05-24 20:54:21
回答 1查看 581关注 0票数 1

在设置了所有URL请求参数之后,我需要对JSF1.1 bean执行一些初始化。有没有好的方法呢?例如,如果像下面这样在faces-config中设置管理bean,我需要在设置完所有参数(Param1,2,3)之后执行一些初始化。

代码语言:javascript
运行
复制
<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> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 21:17:35

通常,您将使用带@PostConstruct注释的方法来实现这一点,但是对@PostConstruct的支持仅在JSF1.2之后才可用。

最好的办法是在托管属性的setter方法中懒惰地执行它。例如。

代码语言:javascript
运行
复制
public void setParam3(String param3) {
    boolean wasNull = this.param3 == null;
    this.param3 = param3;

    if (wasNull) {
        init();
    }
}

另请参阅:

  • Communication in JSF - Passing GET parameters to backing bean

或者,只需升级到JSF 1.2。JSF 1.1与JSF 1.2完全向前兼容,无需对代码进行任何更改(如果在中错误地假设JSF 1.1特定的bug是正确的行为,则会出现这种情况)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16735469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档