之前为加强内部管理而设计的“IP管理系统”整体框架采用Struts1.2,数据库层使用手工编码Dao,由于小型项目没有考虑使用工厂模式数据库设计。在表现层上做了些文章。
在
提交多个checkbox时还是具有些参考价值的,今天有人在提交多个checkbox时同样遇到问题,可能是最近一直在研究AJAX的缘故,写代码时更倾向于客户端执行,而非服务器端执行生成方式,这样可以尽可能减少服务器负载,所以优先考虑js提交,而非struts标签库。如果要考虑编写代码的便捷,或许选择JSF tags比Struts tags更有效率。废话太多了。,下面是前台js提交的代码:
js 代码
js 代码
- function selCheck(){
- var objs = document.getElementsByTagName("input");
- var checkstr = "";
- for(var i=0;i<objs.length;i++)
- {
- if((objs[i].type.toLowerCase() == "checkbox") & (objs[i].checked == true))
- {
- if(checkstr!="")
- {
- checkstr+=",";
- }
- checkstr += objs[i].value;
- }
- }
- if(checkstr=="")
- {
- alert("请选择...!");
- return false;
- }
- else
- {
- location.replace("view.do?cmdType=addmanagedip&id="+checkstr+"");
- }
- }
服务器端 Struts Action 部分只需要通过request.getParameter("id")得到字符串,然后通过数组
String[] checked = checkedstr.split(",");得到所有选择的checkbox的id,调用dao层的定义好的接口就可以对数据进行处理了。
对于提交其他类型的多个参数也可以使用这种隐性的提交方式。
有什么不妥的需要指出的地方欢迎大家和我交流。