如何解决JSF 1.2托管bean继承不起作用
| 我们为所有被操纵的豆继承了基础豆。 basebean中定义了一些通用属性。 但是我们无法检索在Base bean中设置的值。可能是什么问题? 这是我的定义方式。BaseBean {
String msg;
// getter and setter
}
TestManagedBean extends BaseBean {
public String doAction() {
setMsg(\"testMsg\");
return \"status\"
}
}
在jsp中:
<h:outputText value=\"#{testManagedBean.msg}\"/>
解决方法
它应该工作正常。显然,您在错误的实例中访问它,或者您期望更改会神奇地从另一个实例中反映出来。
将基础bean设为
abstract class
,并确保您未将其注册为<managed-bean>
,而只是将其注册为实现类本身(当您仍然这样做时,则JSF在尝试实例化abstract class
时将出错)。您还应该在视图侧仅引用EL的实现类。即不要使用#{baseBean.value}
,而应使用#{concreteBean.value}
,否则该值将在基本bean实例而不是在具体bean实例中设置。当您将“ 8”用作操作方法时,这种方式的值仍为“ 9”。
更新:根据您的更新,尽管代码未编译,但看起来不错。该问题是由其他原因引起的。可能是该bean处于请求范围内,并且您在导航案例中花了10英镑,这导致该bean被浪费并在新请求上重新创建?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。