【发布时间】:2010-03-18 14:42:17
【问题描述】:
只是想知道 Spring 中是否有办法拥有父控制器:
<bean id="parentController" class="org.springframework.web.portlet.mvc.SimpleFormController" abstract="true">
<property name="validator" ref="validatorImpl"/>
...
</bean>
,以及一个扩展它的类:
<bean id="child1Controller" class="com.portlet.controller.Child1Controller" parent="parentController">
<property name="validator"><null/></property>
...
</bean>
<bean id="child2Controller" class="com.portlet.controller.Child2Controller" parent="parentController">
...
</bean>
,以这样的方式,孩子将一个属性覆盖为空。
我知道如果你没有在父级或子级中声明属性,你会得到想要的效果,但是在大多数地方validator指的是validatorImpl,我认为作为继承原则,我可以将属性覆盖为 null。
我不断得到:
15:29:50,141 错误 [PortletHotDeployListener:534] org.springframework.beans.factory.BeanCreationException:在 PortletContext 资源 [/WEB-INF/context/sugerencia-context.xml] 中创建名称为“childController”的 bean 时出错: 初始化bean失败;嵌套异常是 java.lang.NullPointerException org.springframework.beans.factory.BeanCreationException:在 PortletContext 资源 [/WEB-INF/context/sugerencia-context.xml] 中定义名称为“childController”的 bean 创建错误:bean 初始化失败;嵌套异常是 java.lang.NullPointerException
另一方面,
<bean id="parentController" class="org.springframework.web.portlet.mvc.SimpleFormController" abstract="true">
...
</bean>
<bean id="child1Controller" class="com.portlet.controller.Child1Controller" parent="parentController">
...
</bean>
<bean id="child2Controller" class="com.portlet.controller.Child2Controller" parent="parentController">
<property name="validator" ref="validatorImpl"/>
...
</bean>
谢谢。
【问题讨论】:
-
不知道
ParentController是什么,我们无能为力 -
为什么你需要知道 ParentController 是什么??
-
因为你给它注入了一个空值,而我们不是通灵者。
-
现在清楚了吗,还是您需要更多信息?
标签: spring overriding javabeans