从JSP的列表中填充用户定义的对象

时间:2013-03-27 00:36:05

标签: java jsp struts2 ognl

在我的Action类中,我有一个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。这是为什么? 我想确定是否选择了相应的问题。

1 个答案:

答案 0 :(得分: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