【发布时间】:2011-02-18 22:49:21
【问题描述】:
为了将对象注入到我的 Struts 2 Java 项目中,我在 Spring applicationContext.xml 中有以下配置:
<util:map id="typeToURLMap">
<entry key="TYPEA" value="./ur1.x" />
<entry key="TYPEB" value="./url2.x" />
<entry key="TYPEC" value="./url3.x" />
<entry key="OTHER" value="./url4.x" />
</util:map>
<bean id="parentAction" class="my.package.ParentAction" scope="prototype">
<property name="businessDelegate" ref="businessDelegateNotRelevantToThisExample" />
</bean>
<bean id="childAction" class="my.package.ChildAction" scope="prototype" parent="parentAction">
<property name="typeToURLMap" ref="typeToURLMap"/>
</bean>
由于某种原因,在父 Action 上调用了 setter,但在子 Action 中却没有。 这个配置有什么问题吗?
注意:据我了解,util:map 将默认为 Java 类型的 HashMap。
我的 ParentAction 如下所示:
public class ParentAction extends MyAppBaseAction {
private BusinessDelegate businessDelegate;
//other action code using business delegate
/**
* This IS called.
*/
public void setBusinessDelegate(BusinessDelegate delegate){
this.businessDelegate = delegate;
}
}
我的 ChildAction 如下所示:
public class ChildAction extends ParentAction{
private Map<String,String> typeToURLMap;
//other action code using map
/**
* Never Called! (Why?)
*/
public void setTypeToURLMap(Map<String,String map){
this.typeToURLMap = map;
}
}
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
它会给出“无法设置属性”异常还是只是静默失败?
-
它默默地失败了。我没有看到任何异常抛出。
标签: java spring struts2 ioc-container