关于动态html表单,struts的actionform应该如何设置 我的html表单是访问时动态生成的,表单属性名称和个数以及type都不一定,名称也没有规律,actionform不可能事先知道,请问我应该怎么设置actionform,使他能接受到动态表单数据?这个问题之前有人提出了,但还是没怎么搞懂。比如一个调查网的问卷显示页,他有单选框,有多选框,也有text文本输入框,每个问卷都是不同的,请问如何用struts收集到这些数据呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 别用struts了,直接jsp+servlet更简单。 你真的是、你弄的那么没有规律,让别人这么给你解决、放入List里边吧。或许能解决、 actionform 不支持动态设置属性的,比较在页面加载前actionform 会检查是否存在当前属性。楼主你的想法,可以直接使用html标签来表现页面,请求数据可以封装为一个xml,然后使用ajax.send(xlmdoc)发送,后台读取字符串,解析xml获得请求数据即可。或者更简单的方法,把请求数据都放在一个字符串中,然后赋值给一个hidden,在actionform 做这个hidden的属性名设定,提交后,读取ctionform中hidden属性名的值即可 <form name="" action="" method="post"><table border="1"align="center" ><c:choose><c:when test="${empty list_question }"><tr><td>没有符合的数据</td></tr></c:when><c:otherwise><c:forEach items="${list_question }" var="q"><tr><td> <c:choose> <c:when test="${q.q_type==1 }" > <c:set var="dan" value="${q.q_body }"/> <table><tr><td>单选</td></tr><tr><td>${q.q_head }</td></tr><tr><td><c:set var="num" value="0"/><c:forTokens items="${q.q_body }" delims="&$$&" var="d"><c:set var="num" value="${num+1 }"/>${q.q_id }.${num }<input type="radio" name="${q.q_id }" value="${num }">${d }<br></c:forTokens></td></tr></table> </c:when> <c:when test="${q.q_type==2 }" > <table><tr><td>多选</td></tr><tr><td>${q.q_head }</td></tr><tr><td><c:set var="num" value="0"/><c:forTokens items="${q.q_body }" delims="&$$&" var="d"><c:set var="num" value="${num+1 }"/>${q.q_id }.${num }<input type="checkbox" name="${q.q_id+num }">${d }<br></c:forTokens><br></td></tr></table> </c:when> <c:when test="${q.q_type==3 }"> <table><tr><td>填充</td></tr><tr><td>${q.q_head }</td></tr><tr><td>${q.q_id }<input type="text" size="30" name="q.q_id"></td></tr></table> </c:when> </c:choose></td></tr></c:forEach></c:otherwise></c:choose><tr><td align="center"><input type="submit" value="提交"/> <input type="reset" value="重填"/></td></tr></table></form> 传递过来list_question对象,在这个页面显示,该对象的属性有 private int q_id;(问题编号) private int s_id;(问卷编号) private int q_type;(问题类型,值1为单选,2为多选,3为填空) private String q_head;(问题题目) private String q_body;(单选和多选时的选项,以“&$$&”隔开) private String q_result;(结果统计,以“,”隔开)问题是页面动态显示,调查卷的题目类型,选项数量无法确定,这样actionfrom无法生成, 故考虑是否可以用map,list或其他方法解决,求教 这种类似的问题我问过,可没有人回答我。我是自己想办法的!!把你的那个html里name啊,value啊什么全部弄到数据库里,只有可以动态的增删改查!需要收集的时候,在action里预先把这些html的name保留一下,然后用request获取!! 用动态FORM 不过我从来没用过(LZ可自行搜索struts动态FORM 听别人说貌似很好用) 通过Servlet倒是很容易解决 用request.getParameterNames()或者request.getParameterMap()实验下 linux下java调用可执行文件的问题 想请教各位大侠一个关于制作EXE文件的问题 SSH开发项目 继承问题 jsp 与数据库的问题! jsp显示数据表表头的值?可是显示出来是乱码! hibernate多表查询返回部分字段的问题 JDBC接连ACCESS,总是出错No suitable driver,不知道为什么,麻烦各位大侠了 导航树问题! 关注open source的达人请进:你用哪种decompiler? 祝大家圣诞快乐! 讨论一下,继承、抽象、多态、接口的区别与何时用. ss组合.spring没有初始化我的action.为什么?
或者更简单的方法,把请求数据都放在一个字符串中,然后赋值给一个hidden,在actionform 做这个hidden的属性名设定,提交后,读取ctionform中hidden属性名的值即可
<table border="1"align="center" >
<c:choose>
<c:when test="${empty list_question }">
<tr><td>没有符合的数据</td></tr>
</c:when>
<c:otherwise>
<c:forEach items="${list_question }" var="q">
<tr><td>
<c:choose>
<c:when test="${q.q_type==1 }" >
<c:set var="dan" value="${q.q_body }"/>
<table><tr><td>单选</td></tr><tr><td>${q.q_head }</td></tr><tr><td><c:set var="num" value="0"/><c:forTokens items="${q.q_body }" delims="&$$&" var="d"><c:set var="num" value="${num+1 }"/>${q.q_id }.${num }<input type="radio" name="${q.q_id }" value="${num }">${d }<br></c:forTokens></td></tr></table>
</c:when>
<c:when test="${q.q_type==2 }" >
<table><tr><td>多选</td></tr><tr><td>${q.q_head }</td></tr><tr><td><c:set var="num" value="0"/><c:forTokens items="${q.q_body }" delims="&$$&" var="d"><c:set var="num" value="${num+1 }"/>${q.q_id }.${num }<input type="checkbox" name="${q.q_id+num }">${d }<br></c:forTokens><br></td></tr></table>
</c:when>
<c:when test="${q.q_type==3 }">
<table><tr><td>填充</td></tr><tr><td>${q.q_head }</td></tr><tr><td>${q.q_id }<input type="text" size="30" name="q.q_id"></td></tr></table>
</c:when>
</c:choose>
</td></tr>
</c:forEach>
</c:otherwise>
</c:choose>
<tr><td align="center"><input type="submit" value="提交"/> <input type="reset" value="重填"/></td></tr>
</table>
</form>
private int q_id;(问题编号)
private int s_id;(问卷编号)
private int q_type;(问题类型,值1为单选,2为多选,3为填空)
private String q_head;(问题题目)
private String q_body;(单选和多选时的选项,以“&$$&”隔开)
private String q_result;(结果统计,以“,”隔开)
问题是页面动态显示,调查卷的题目类型,选项数量无法确定,这样actionfrom无法生成, 故考虑是否可以用map,list或其他方法解决,求教
把你的那个html里name啊,value啊什么全部弄到数据库里,只有可以动态的增删改查!需要收集的时候,在action里预先把这些html的name保留一下,然后用request获取!!
用动态FORM 不过我从来没用过(LZ可自行搜索struts动态FORM 听别人说貌似很好用)
通过Servlet倒是很容易解决 用
request.getParameterNames()或者request.getParameterMap()实验下