当前位置:编程学习 > JAVA >>

struts2怎么提交[不一定数量]的单选按钮表单??~~怎么做???





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中,用数组获得的话,单选按钮的分组有有问题~!!!


有什么好的解决办法吗??? --------------------编程问答-------------------- <td>
<s:radio id="mailInfomation.makerFlag" name="mailInfomation.makerFlag" list="#{'0':'通知','1':'不通知'}" value="0"></s:radio>

</td>

你每道题目的 选择 这么写 你那么写虽然也能实现 不过 很繁琐也很不合理

VALUE是默认的值 你那个应该不设置 也就是去掉那个属性  LIST里面的前面的是值 后面的是显示的内容 --------------------编程问答-------------------- name="mailInfomation.makerFlag" 这里的 可以是你题目的编号 如果 编号都一样的话 例如
1  A B C D
1  A B C D
那么 提交表单后 mailInfomation.makerFlag 这个属性是一个 用,号顺序连接的字符串 你可以用split进行解析 --------------------编程问答-------------------- 这个简单,其实就是考题的生成与获取。
考题的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里然后再动态取索引。 --------------------编程问答--------------------
引用 2 楼  的回复:
name="mailInfomation.makerFlag" 这里的 可以是你题目的编号 如果 编号都一样的话 例如
1  A B C D
1  A B C D
那么 提交表单后 mailInfomation.makerFlag 这个属性是一个 用,号顺序连接的字符串 你可以用split进行解析



可是name起的名字都一样之后,单选分组的功能就没了呢.
我想是第一个abcd是一组,第二个abcd是一组.
名字都一样的话,所有的单选按钮只能选择一个了呀??? --------------------编程问答--------------------
引用 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……


<input type="radio" name="rad_1_1" value="A" />
<input type="radio" name="rad_1_2" value="B" />

这种动态的名字
后台的set get 方法该怎么写啊?
--------------------编程问答-------------------- 名字你可以不一样 我说的 是如果一样的 时候的 处理方法 --------------------编程问答-------------------- 我给你直接上代码吧:
<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 方法进行分割   --------------------编程问答--------------------
引用 6 楼  的回复:
名字你可以不一样 我说的 是如果一样的 时候的 处理方法



可是不一样的话比方说
name="第一题" abcd
name="第二题" abcd
name="第三题" abcd
.
.
.




action中的set,get的方法,怎么写呐??? --------------------编程问答--------------------
引用 7 楼  的回复:
我给你直接上代码吧:
<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……



这种名字都一样的话,

单选按钮分组就失效了啊````````````

就是第一题,第二题,所有的单选按钮在一个分组里,只能选一个啦~!!!
--------------------编程问答-------------------- 你的同一组radio的name一定要一样。 --------------------编程问答-------------------- 不要用get set
直接写个方法用request.getParameter去取 --------------------编程问答-------------------- 以前我有做过生成考题和考题获取的代码,不过在家里电脑上,我回家找找看发给你吧,你留一下邮箱。 --------------------编程问答-------------------- 你的同一组radio的name一定要一样。 --------------------编程问答-------------------- 你的考试卷子格式 题目数量是 定好的么? --------------------编程问答-------------------- 你可以 创建一个 题目类 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这个对象 --------------------编程问答--------------------
引用 11 楼  的回复:
不要用get set
直接写个方法用request.getParameter去取


439635374@qq.com --------------------编程问答--------------------
引用 14 楼  的回复:
你的考试卷子格式 题目数量是 定好的么?



不是定好的

是任意个数量的题目

从库里查出来多少,就有多少,比方试卷a有10道题,但是试卷b就可能有20道题

--------------------编程问答--------------------
引用 15 楼  的回复:
你可以 创建一个 题目类 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=……



还可以这样啊,学习了,呵呵

但是这里题目的数量是不定的啊

那就在action中不知道该定义几个,对象了.....

--------------------编程问答-------------------- 那还有一种方法  就是修改STRUTS2的源码  在 RADIO 里定义的NAME 对应一定的规律 例如 answerName1
answerName2,answerName3 这样在 STRITS2拦截表单提交请求时 对这类的名称 的值 专门的赋值成"1,1,1,"这种属性给 事先设置的类 例如类ANSWER 也就是说在 源码里面加上一种 特殊情况的处理
其他的方法 暂时我也想不出来啥了 
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,