У меня есть следующая конфигурация в моем приложении applicationContext.xml Spring для добавления объектов в мой проект Java Struts 2:
<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>
По какой-то причине сеттер вызывается в родительском действии, но не в дочернем действии. Что-то не так с этой конфигурацией?
Примечание. Насколько я понимаю, util: map будет по умолчанию использовать Java-тип HashMap.
My 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;
}
}
Любая помощь будет принята с благодарностью. Спасибо!