struts 2动作链获取相同对象的不同值

时间:2013-04-09 00:42:41

标签: struts2

我有一个动作类,我从jsp传递值,然后在动作类1中修改该值,然后由于动作链,正在调用另一个动作2。 在行动2中,我得到原始值

value= 100// in jsp action 1: value*10= 1000// action 1 go to action 2

我希望修改后的值转到操作2中i.e. 1000//修改后的值{但是我得到10// i.e. original value.

你能告诉我怎么做才能使用从行动1中获得的值。

struts.xml中

<action name="action1" class="vaannila.action.action1">
    <result name="success" type="chain">action2
    </result>
</action>
<action name="action2" class="vaannila.action.action2">
    <result name="success" type="dispatcher">result.jsp
    </result>
</action>

行动1

public class action1 extends ActionSupport implements SessionAware{ 
    public String execute() throws Exception{
        System.out.println("original"+ pSB.getvalue() ); // getting 10
        pSB.getvalue((pSB.getvalue()*10));

        System.out.println("modified"+ pSB.getvalue() ); // getting 100 
                return "success";   
    }
}

行动2:

public class action2 extends ActionSupport implements SessionAware{ 
    public String execute() throws Exception{
        System.out.println("original"+ pSB.getvalue() ); // getting 10 instead of 100.
            return "success";   
    }
}

1 个答案:

答案 0 :(得分:1)

按如下方式更改操作1

public class action1 extends ActionSupport implements SessionAware{ 
public String execute() throws Exception{
    System.out.println("original"+ pSB.getvalue() ); // getting 10
    pSB.setvalue((pSB.getvalue()*10));

    System.out.println("modified"+ pSB.getvalue() ); // getting 100 
            return "success";   
}

错误在于您已计算action1类中的值,但未将其更新回会话