2013-03-27 3 views
0

В моем классе Action у меня есть список Questions. что я хочу быть заселенным из представления.Заполнение пользовательских объектов из списка из JSP

public class MyQuizTest extends ActionSupport { 

    public String addItemsToTemplate(){ 
     List<Question> q= myQuestions; 
     System.out.println(q); 

     return "success"; 
    } 

    public List<Question> getMyQuestions() { 
     return myQuestions; 
    } 

    public void setMyQuestions(List<Question> myQuestions) { 
     this.myQuestions = myQuestions; 
    } 
    private List<Question> myQuestions; 
} 

Это класс вопрос

public class Question{ 

    public boolean isChosen(){ 
    retrun this.chosen 
} 

    public void setChosen(boolean chosen){ 
    this.chosen = chosen; 
    } 

    private boolean chosen; 
} 

А вот форма, которая обрабатывает, что

<form method = "GET" action = "addItemsToTemplate"> 
    <s:iterator value = "myQuestions" status="key" var = "questionItem"> 
    <s:checkbox name = "myQuestions[%{#key.index}].chosen" label="Check Me for testing"/>   
</s:iterator> 
</form> 

этот метод обрабатывает форму

public String addItemsToTemplate(){ 
      List<Question> q= myQuestions; 
      System.out.println(q); 

      return "success"; 
     } 

После представления, myQuestions возвращает null. почему это? Я хочу определить, был ли выбран соответствующий вопрос.

+0

Я не пользователь Struts 2, но, кажется, что вы неправильное использование тега ''. Пожалуйста, обратитесь к [этому примеру] (http://www.mkyong.com/struts2/struts-2-iterator-tag-example/), чтобы исправить ваш код соответствующим образом. –

+0

Я обновил его. – user962206

+0

Ваша переменная 'myQuestions' возвращает' null', так как вы ее нигде не инициализировали (как показано в ответе). –

ответ

0

где вы заполняете myQuestions на Уровне действий.

Если вы не заселяете его нигде, то когда переменная myQuestions встречается в JSP, она пуста/null, из-за чего я думаю, что поток не войдет в ваш цикл итератора.

<s:iterator value = "myQuestions" status="key" var = "questionItem"> 
    <s:checkbox name = "myQuestions[%{#key.index}].chosen" label="Check Me for testing"/>   
</s:iterator> 

Теперь, если вы отправите форму, конечно, в myQuestions объект не отображается ни с чем от JSP и, таким образом, приходит утратившим

+0

Я заполняю его где-то в одном классе Action другим способом. – user962206

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