2013-04-09 47 views
0

我有一個動作類,我從jsp傳遞值,然後在動作類1中修改該值,然後由於動作鏈,另一個動作2被調用。 在行動2我得到的原始值struts 2獲取同一對象的不同值的動作鏈

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

我想修改的值去行動修改動作1 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

這裏有一個錯字:'pSB.getvalue((pSB.getvalue()* 10));'應該開始智慧h'pSB.setvalue'當然,但這只是在創建問題,因爲下一行的值不會是100 ......同樣看到部分操作也很煩人。這是我想看到兩個行動的獲得者和制定者。這可能是簡單的剪切和粘貼,否則人們會看到愚蠢的拼寫錯誤,並告訴你這是錯誤的原因。 – Quaternion 2013-04-09 03:19:17

回答

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"; 
} 

的錯誤是,你計算在動作1級的價值,但沒有更新它回到會話