2013-04-09 2 views
0

У меня есть класс действия, в котором я передаю значение из jsp, а затем изменяя это значение в классе действий 1, а затем из-за цепочки действий вызывается другое действие2. В действии 2 я получаю исходное значениеstruts 2 Цепочка действий, получающая разные значения одного и того же объекта

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

Я хочу измененное значение для перехода к действию 2 i.e. 1000// значение модифицирована в действии 1. но я получаю 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

ответ

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, но не обновляется он возвращается к сеансу

Смежные вопросы