日期:2014-05-20  浏览次数:20937 次

spring配置action bean的问题
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