在我的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
。这是为什么?
我想确定是否选择了相应的问题。
答案 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