action怎么获得jsp页面里标签里的标签的选中值

时间:2022-10-02 13:40:17
我想做一个随机抽出十道题的功能,可是action获得不到jsp页面里<s:iterator>标签里的<s:radio>标签的选中值
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,在网上查了好久也没有解决,求大神指导 action怎么获得jsp页面里标签里的标签的选中值

7 个解决方案

#1


看下最后浏览器的html 里面 是不是
 name="answer"

#2


你能不能把<s:radio>  的name都设成同一个  比如说都是answer
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");

#3


引用 1 楼 rui888 的回复:
看下最后浏览器的html 里面 是不是
 name="answer"

是在浏览器里面查看源代码吗?里面是这样的
 <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]是 不可以 的

#5


引用 4 楼 rui888 的回复:
你改成  answer。你后台 匹配的时answer

你 answer[0]是 不可以 的

我的是在<s:iterator>里面迭代的10道题,每道题都有四个radio选项,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。刚才试着把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。

#6


引用 2 楼 u010617434 的回复:
你能不能把<s:radio>  的name都设成同一个  比如说都是answer
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");

试过了,这个不满足需求,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。

#7


用复选框成不

#1


看下最后浏览器的html 里面 是不是
 name="answer"

#2


你能不能把<s:radio>  的name都设成同一个  比如说都是answer
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");

#3


引用 1 楼 rui888 的回复:
看下最后浏览器的html 里面 是不是
 name="answer"

是在浏览器里面查看源代码吗?里面是这样的
 <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]是 不可以 的

#5


引用 4 楼 rui888 的回复:
你改成  answer。你后台 匹配的时answer

你 answer[0]是 不可以 的

我的是在<s:iterator>里面迭代的10道题,每道题都有四个radio选项,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。刚才试着把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。

#6


引用 2 楼 u010617434 的回复:
你能不能把<s:radio>  的name都设成同一个  比如说都是answer
然后后台可以这样获得
String[] answers = request.getParameterValues("answer");

试过了,这个不满足需求,我想把10道题都选完,然后一起把选中的答案传给action里面的answer[]数组。把名字都改成answer,10道题里面就只有一道题能选中了,当一道题选中,再选另一道时,上一道题的radio就变成未选中状态了。

#7


用复选框成不