【问题标题】:How to change value of a session bean from a request bean?如何从请求 bean 更改会话 bean 的值?
【发布时间】:2011-05-17 15:50:03
【问题描述】:

我有一个会话 bean FooSessionBean,它有一个布尔属性:visible

我想从我的 FooRequestBean 更改 visible 属性的值。除了将 FooRequestBean 的范围更改为会话而不是请求(能够将FooSessionBean 注入我的FooRequestBean)之外,还有什么方法可以做到这一点?

提前致谢。

Ps:我使用的是 JSF 1.2

【问题讨论】:

  • 除了将 FooRequestBean 的范围更改为 session 而不是 request(以便能够将 FooSessionBean 注入我的 FooRequestBean)? 为什么您认为无法注入请求范围 bean 中的会话范围 bean?它应该工作得很好。您到底遇到了什么问题?

标签: java jsf jsf-1.2


【解决方案1】:

FooRequestBean 中创建一个FooSessionBean 属性(getter/setter)并使用faces-config.xml 注入它:

<managed-bean>
  <managed-bean-name>fooRequestBeanName</managed-bean-name>
  <managed-bean-class>foo.FooRequestBean</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
  <managed-property>
    <property-name>fooSessionBeanPropName</property-name>
    <property-class>foo.FooSessionBean</property-class>
    <value>#{sessionScope.fooSessionBeanName}</value> 
  </managed-property>
 //etc

【讨论】:

  • 酷,它有效:)...我认为我不能将会话 bean 注入请求中,但反之亦然...
  • @Christian - 你可以从大范围注入到小范围;你只是不能从狭窄的范围内注入到更广泛的范围内。
猜你喜欢
  • 1970-01-01
  • 2012-05-26
  • 2014-07-11
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多