【问题标题】:jsf 1.2 two scopes in the same managed-beanjsf 1.2 同一个托管 bean 中的两个作用域
【发布时间】:2012-12-03 07:05:51
【问题描述】:

在 JSF 1.2 中是否有可能拥有具有两个不同范围的同一个 Bean? 我的意思是:

<managed-bean>
    <managed-bean-name>beanOne</managed-bean-name>
    <managed-bean-class>files.bean.BeanOne</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
            <property-name>someConfiguration</property-name>
            <value>#{configurationBean}</value>
    </managed-property>
</managed-bean>


<managed-bean>
    <managed-bean-name>beanOne</managed-bean-name>
    <managed-bean-class>files.bean.BeanOne</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
            <property-name>someParam</property-name>
            <value>#{param.value}</value>
    </managed-property>
</managed-bean>

显然,此解决方案不起作用,但这是我想要做的,而不需要两次使用不同名称的相同 BeanOne! 谢谢!! ;)

【问题讨论】:

  • 你想在这里达到什么目的?
  • 我想要具有两个不同范围的同一个 bean:会话和请求。

标签: scope jsf-1.2 managed-bean


【解决方案1】:

不可能有两个不同范围的同一个bean。在您的情况下,请为您的另一个 bean 提供不同的名称并有两个不同的 bean(一个在 request 范围内,另一个在 session 范围内)

想了解更多可以参考BalusC的一些好帖子

Link1 & Link2

【讨论】:

  • 好的,谢谢!!最后,我使用这个替代方法解决了我的问题: var params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); String someValue = params.get("someName");所以,我不必创建另一个 bean! :)
  • 在您的 faces-config.xml 中,您将 bean 映射到的 scope 是什么?
猜你喜欢
  • 1970-01-01
  • 2015-04-11
  • 2012-03-24
  • 2018-04-10
  • 1970-01-01
  • 2012-02-29
  • 2017-10-19
  • 1970-01-01
  • 2013-09-10
相关资源
最近更新 更多