#java #jsf #jsf-1.2
#java #jsf #jsf-1.2
Вопрос:
У меня есть компонент сеанса, FooSessionBean
который имеет логическое свойство: visible
.
Я хочу изменить значение visible
свойства из моего FooRequestBean. Есть ли какой-либо способ сделать это, кроме изменения области FooRequestBean на session вместо request (чтобы иметь возможность вводить FooSessionBean
в my FooRequestBean
)?
Заранее спасибо.
PS: Я использую JSF 1.2
Комментарии:
1. кроме изменения области FooRequestBean на session вместо request (чтобы иметь возможность внедрить FooSessionBean в мой FooRequestBean)? почему вы думаете, что невозможно внедрить компонент с областью сеанса в компонент с областью запроса? Это должно работать отлично. С какими именно проблемами вы сталкиваетесь при этом?
Ответ №1:
Создайте FooSessionBean
свойство (getter / setter) в FooRequestBean
и внедрите его с помощью 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
Комментарии:
1. Круто, это работает :)… Я думал, что я не могу внедрить компонент сеанса в компонент запроса, а только наоборот…
2. @Christian — вы можете вводить из широкой области в более узкую; вы просто не можете вводить из узкой области в более широкую.