jsp页面:
<s:iterator value="rlist" id="rlist" status="vs">
<tr id="" class="sep${vs.index%2==0?1:2}">
<td style="text-align: center">
<s:property value="#vs.count"/></td>
<td> <s:property value="#rlist.ques"/></td>
</tr>
<tr>
<td></td>
<td><label>
<s:radio name="answer[%{#vs.index}]" list="#{'A':#rlist.a,'B':#rlist.b,'C':#rlist.c,'D':#rlist.d}"></s:radio>
</label></td>
</tr>
</s:iterator>
action页面:
private String[] answer=new String[10];
public String[] getAnswer() {
return answer;
}
public void setAnswer(String[] answer) {
this.answer = answer;
}
public String cetAns()
{
List<Tests> ctlans=(List<Tests>) this.getSession().getAttribute("ctl");
System.out.println(answer[1]);
return "cetAns";
}
输出的是null,在网上查了好久也没有解决,求大神指导
7 个解决方案
#1
看下最后浏览器的html 里面 是不是
name="answer"
name="answer"
#2
你能不能把<s:radio> 的name都设成同一个 比如说都是answer
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");
#3
是在浏览器里面查看源代码吗?里面是这样的
<td
>
<input type="radio" name="answer[0]" id="answer_0_A" value="A"/><label for="answer_0_A">accomplished</label>
<input type="radio" name="answer[0]" id="answer_0_B" value="B"/><label for="answer_0_B">being accomplished</label>
<input type="radio" name="answer[0]" id="answer_0_C" value="C"/><label for="answer_0_C">to be accomplished</label>
<input type="radio" name="answer[0]" id="answer_0_D" value="D"/><label for="answer_0_D">having been accomplished</label>
</td>
name="answer[0]"一直到name="answer[9]" 因为我的页面取了10道题
#4
你改成 answer。你后台 匹配的时answer
你 answer[0]是 不可以 的
你 answer[0]是 不可以 的
#5
我的是在<s:iterator>里面迭代的10道题,每道题都有四个radio选项,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。刚才试着把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。
#6
试过了,这个不满足需求,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。
#7
用复选框成不
#1
看下最后浏览器的html 里面 是不是
name="answer"
name="answer"
#2
你能不能把<s:radio> 的name都设成同一个 比如说都是answer
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");
#3
是在浏览器里面查看源代码吗?里面是这样的
<td
>
<input type="radio" name="answer[0]" id="answer_0_A" value="A"/><label for="answer_0_A">accomplished</label>
<input type="radio" name="answer[0]" id="answer_0_B" value="B"/><label for="answer_0_B">being accomplished</label>
<input type="radio" name="answer[0]" id="answer_0_C" value="C"/><label for="answer_0_C">to be accomplished</label>
<input type="radio" name="answer[0]" id="answer_0_D" value="D"/><label for="answer_0_D">having been accomplished</label>
</td>
name="answer[0]"一直到name="answer[9]" 因为我的页面取了10道题
#4
你改成 answer。你后台 匹配的时answer
你 answer[0]是 不可以 的
你 answer[0]是 不可以 的
#5
我的是在<s:iterator>里面迭代的10道题,每道题都有四个radio选项,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。刚才试着把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。
#6
试过了,这个不满足需求,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。
#7
用复选框成不