HTML:<table border="1" cellpadding="0" cellspacing="0" id="senfe">
<c:forEach var="ed" items="${examdetail}"><tr>
<td colspan="4">${ed.tm}</td>
</tr>
<tr>
<td>A:<input name="${ed.id}" type="radio" value="A"></td><td >${ed.xxa}</td>
<td>B:<input name="${ed.id}" type="radio" value="B"></td><td >${ed.xxb}</td>
</tr>
<tr>
<td>C:<input name="${ed.id}" type="radio" value="C"></td><td >${ed.xxc}</td>
<td>D:<input name="${ed.id}" type="radio" value="D"></td><td >${ed.xxd}</td>
</tr>
</c:forEach>
</table>这里要name同意才能把单选按钮分组吧??因为属俩个不定,不知道怎么搞了.提交到action之后,action中怎么写set,get方法?要是名字都一样.
<table border="1" cellpadding="0" cellspacing="0" id="senfe">
<c:forEach var="ed" items="${examdetail}"><tr>
<td colspan="4">${ed.tm}</td>
</tr>
<tr>
<td>A:<input name="a" type="radio" value="A"></td><td >${ed.xxa}</td>
<td>B:<input name="b" type="radio" value="B"></td><td >${ed.xxb}</td>
</tr>
<tr>
<td>C:<input name="c" type="radio" value="C"></td><td >${ed.xxc}</td>
<td>D:<input name="d" type="radio" value="D"></td><td >${ed.xxd}</td>
</tr>
</c:forEach>
</table>
提交到action中,用数组获得的话,单选按钮的分组有有问题~!!!
有什么好的解决办法吗???

解决方案 »

  1.   

    <td>
    <s:radio id="mailInfomation.makerFlag" name="mailInfomation.makerFlag" list="#{'0':'通知','1':'不通知'}" value="0"></s:radio>

    </td>你每道题目的 选择 这么写 你那么写虽然也能实现 不过 很繁琐也很不合理VALUE是默认的值 你那个应该不设置 也就是去掉那个属性  LIST里面的前面的是值 后面的是显示的内容
      

  2.   

    name="mailInfomation.makerFlag" 这里的 可以是你题目的编号 如果 编号都一样的话 例如
    1  A B C D
    1  A B C D
    那么 提交表单后 mailInfomation.makerFlag 这个属性是一个 用,号顺序连接的字符串 你可以用split进行解析
      

  3.   

    这个简单,其实就是考题的生成与获取。
    考题的item项生成用动态的name,类似于这样
    <input type="radio" name="rad_1_1" value="A" />
    <input type="radio" name="rad_1_2" value="B" />
    <input type="radio" name="rad_2_1" value="A" />
    <input type="radio" name="rad_2_2" value="B" />
    在jsp页面弄2个foreach生成或是一个foreach生成考题,考题项可以自己固定写死或者是根据考题的ID放入map健值映射一个考题的item项的list根据item order排序生成。
    <input type="radio" name="rad_${a_index}_${b_index}" value="A" />在后台获取页面数据时,不知道你的这些考题是放在数据库的没有?如果放到数据库就读取数据库的记录,然后再动态取索引,如果没有就可以采用楼上的方法,在生成这个页面的时候就将题目数和item项拼成一个json字符串放入hidden里然后再动态取索引。
      

  4.   

    可是name起的名字都一样之后,单选分组的功能就没了呢.
    我想是第一个abcd是一组,第二个abcd是一组.
    名字都一样的话,所有的单选按钮只能选择一个了呀???
      

  5.   


    <input type="radio" name="rad_1_1" value="A" />
    <input type="radio" name="rad_1_2" value="B" />这种动态的名字
    后台的set get 方法该怎么写啊?
      

  6.   

    我给你直接上代码吧:
    <tr>
    <td>第一题</td>
    <td>
    <s:radio id="XXX" name="XXX" list="#{'0':'A','1':'B'}" ></s:radio></td>
    </tr>
    <tr>
    <td>第二题</td>
    <td>
    <s:radio id="XXX" name="XXX" list="#{'0':'A','1':'B'}" ></s:radio></td>
    </tr>这样 你页面上看 是
    第一题  A  B
    第二题  A  B
    你分别选择 A B 那么提交表单后  在对应的ACTION类里面 属性 XXX 的值 为"0,1"
    然后你可以根据 String  的 split 方法进行分割  
      

  7.   

    可是不一样的话比方说
    name="第一题" abcd
    name="第二题" abcd
    name="第三题" abcd
    .
    .
    .
    action中的set,get的方法,怎么写呐???
      

  8.   

    你的同一组radio的name一定要一样。
      

  9.   

    不要用get set
    直接写个方法用request.getParameter去取
      

  10.   

    你的同一组radio的name一定要一样。
      

  11.   

    你可以 创建一个 题目类 A
    结构如下:
    Class A{
    private String one;
    private String two;
    }然后再 ACTION里 注入这个 类型的属性private A a;页面
    动态的生成名称<tr>
    <td>第一题</td>
    <td>
    <s:radio id="XXX" name="a.two" list="#{'0':'A','1':'B'}" ></s:radio></td>
    </tr>
    <tr>
    <td>第二题</td>
    <td>
    <s:radio id="XXX" name="a.one" list="#{'0':'A','1':'B'}" ></s:radio></td>
    </tr>提交后 结果就是 a这个对象
      

  12.   

    还可以这样啊,学习了,呵呵但是这里题目的数量是不定的啊那就在action中不知道该定义几个,对象了.....
      

  13.   

    那还有一种方法  就是修改STRUTS2的源码  在 RADIO 里定义的NAME 对应一定的规律 例如 answerName1
    answerName2,answerName3 这样在 STRITS2拦截表单提交请求时 对这类的名称 的值 专门的赋值成"1,1,1,"这种属性给 事先设置的类 例如类ANSWER 也就是说在 源码里面加上一种 特殊情况的处理
    其他的方法 暂时我也想不出来啥了