2011-05-17 93 views
1

我有一个会话bean FooSessionBean它有一个布尔属性:visible如何从请求bean更改会话bean的值?

我想从我的FooRequestBean中更改visible属性的值。除了将FooRequestBean的范围更改为会话而不是请求(可以将FooSessionBean注入我的FooRequestBean)之外,是否有任何方法可以执行此操作?

在此先感谢。

PS:我使用的是JSF 1.2

+0

*除了改变FooRequestBean的会话范围而不是请求(能够将FooSessionBean注入到我的FooRequestBean中)?*为什么您认为无法在请求作用域bean中注入会话作用域bean?它应该工作得很好。你遇到什么问题? – BalusC 2011-05-17 16:14:43

回答

2

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 
+0

酷,它的工作原理:)...我认为我不能注入一个会话bean到一个请求但反之亦然... – 2011-05-17 16:13:18

+2

@Christian - 你可以从广泛的范围注入到一个更窄的;你不能从狭窄的范围注入更广泛的范围。 – McDowell 2011-05-17 16:15:50

+0

啊,那就是重点!谢谢! – 2011-05-17 16:21:15