SSH遇到个问题。 我定义了个action,里面有个list,然后list是通过xml赋值的
spring xml配置
- XML code
<bean id="PageForwardAction" class="action.PageForwardAction" scope="singleton"> <property name="menuRule"> <list> <value>1</value> <value>2</value> <value>3</value> </list> </property></bean>
action代码
- Java code
public class PageForwardAction extends ActionSupport{ private List menuRule = new ArrayList(); public PageForwardAction() { System.out.println("create new"); } public String pageForward() throws Exception { return SUCCESS; } public List getMenuRule() { return menuRule; } public void setMenuRule(List menuRule) { this.menuRule = menuRule; }}
我怎么都取不到list的值,后来发现每次调用action的时候,PageForwardAction构造函数都会被调用一次,输出“create new”,然后容器初始化时赋值给menuRule的setter的值就没了,singleton为什么没用? 而且spring里配置的property为什么容器刚启动的时候会调用一次,调用action的就不装配了?。。。。
这个是怎么回事 搞不懂啊搞不懂
------解决方案--------------------
单独定义一个id="menuRule "试试
------解决方案--------------------
struts和spring的结合没配置好吧,就是你请求action的时候实际上没有从spring容器中区获取action对应的bean,所以属性没注入进去
------解决方案--------------------
我也觉得是整合的时候出问题了。。
------解决方案--------------------
private List menuRule = new ArrayList();
更改成
public List menuRule