0

私の Action クラスには、 の List がありQuestionsます。ビューから入力したいこと。

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。何故ですか?対応する質問が選択されているかどうかを確認したい。

4

1 に答える 1

0

Action Layer のどこに myQuestions を設定していますか。

どこにもデータを入力していない場合、JSP で myQuestions 変数が検出されると、空/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 から何もマップされていないため、null として送信されます。

于 2013-03-27T04:32:01.633 に答える