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被浪费并在新请求上重新创建?     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...