首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

JSP的复选框有关问题。望各位牛人解决

2012-02-22 
JSP的复选框问题。望各位牛人解决。struts代码如下:publicActionForwardview1(ActionMappingmapping,ActionF

JSP的复选框问题。望各位牛人解决。
struts代码如下:
public   ActionForward   view1(ActionMapping   mapping,   ActionForm   form,
HttpServletRequest   request,   HttpServletResponse   response){
Integer   id   =   new   Integer(request.getParameter( "userid "));
UserInfo1   user   =   new   UserInfo1();
user   =   (UserInfo1)usermanger.createQuery( "from   UserInfo1   as   q   where   q.userInfo.userId=:loginId ").setInteger( "loginId ",id).uniqueResult();
//取得表中含,的字段
String   ss   =   user.getIlikeEat();
String   ss1   =   user.getIfeeli().substring(0);
String   ss2   =   user.getMySports().substring(0);
String   ss3   =   user.getMfSuperority().substring(0);
String   ss4   =   user.getFavSite().substring(0);
String   ss5   =   user.getInterestTopic().substring(0);
String   ss6   =   user.getFindPartner().substring(0);
String   ss7   =   user.getThinkAlotOf().substring(0);
String   ss8   =   user.getFamRelat().substring(0);
//将字段进行处理
String[]   aa   =   ss.substring(0).split( ", ");
String[]   aa1   =   ss1.substring(0).split( ", ");
String[]   aa2   =   ss2.substring(0).split( ", ");
String[]   aa3   =   ss3.substring(0).split( ", ");
String[]   aa4   =   ss4.substring(0).split( ", ");
String[]   aa5   =   ss5.substring(0).split( ", ");
String[]   aa6   =   ss6.substring(0).split( ", ");
String[]   aa7   =   ss7.substring(0).split( ", ");
String[]   aa8   =   ss8.substring(0).split( ", ");
HashMap   hm   =   new   HashMap();
//放到集合中
hm.put( "aa ",   aa);  
hm.put( "aa1 ",   aa1);
hm.put( "aa2 ",   aa2);
hm.put( "aa3 ",   aa3);
hm.put( "aa4 ",   aa4);
hm.put( "aa5 ",   aa5);
hm.put( "aa6 ",   aa6);
hm.put( "aa7 ",   aa7);
hm.put( "aa8 ",   aa8);
System.out.print(hm.size()+ "=00000000000000000 ");
//绑定在request当中
request.setAttribute( "hm ",   hm);
JSP页面代码如下
<body>
           
<logic:iterate     id= "String "   collection= "${hm} ">
<logic:iterate   id= "a "   name= "String "   property= "value ">
<td> <input   name= "fengkuang "   type= "checkbox "   id= "fengkuang "   value= "疯狂 "   <c:if   test= "${a   eq   '疯狂 '} "> checked= 'true ' </c:if> >
            疯狂 </td>
                    <td> <input   name= "wenzhong "   type= "checkbox "   id= "wenzhong "   value= "稳重 "   <c:if   test= "${a} "> </c:if> >
            稳重 </td>
                    <td> <input   name= "langman "   type= "checkbox "   id= "langman "   value= "浪漫 "   <c:if   test= "${a} "> </c:if> >


            浪漫 </td>
                    <td> <input   name= "haodou "   type= "checkbox "   id= "haodou "   value= "好斗 "   <c:if   test= "${a} "> </c:if> >
            好斗 </td>
                </tr>
</logic:iterate>
</logic:iterate>
<tr>

</body>
现在问题主要是出现在页面当中。因为传过来的值是个集合,集合里面有数组。那么我页面上面用struts标签进行了嵌套迭代。这时候测试页面上面可以显示迭代后的值。那么现在我就要利用这些值在页面上进行复选框的判断,如果值有相对应的复选框,那么就打上钩,如果没有,则不打钩,但是选项还是要显示出来。那么现在页面上用此代码出现的结果就是出现了N多重复的选框,而且并没有打钩。那么就请教各位高手该怎么去解决。前提是页面上不要出现 <%%> ,一切都在action里面完成



[解决办法]
想了一下,想不出来好的办法。只能在Action里,我做不到。
[解决办法]
还是不太明白你的意思.写下思路希望能对你有帮助.

把“显示选框“和”是否选中“两件事分开处理。


1.显示所有选框。
2.利用传递过来的值判断哪个选框需要选中.(用javascript实现onload)
[解决办法]
JSP里定义个HIDDEN然后在javascript里逐个检查复选框,将选中的值方入一个字符串数组中,然后将数组交给HIDDEN中定义的属性这样在ACTION中就可以从HIDDEN中拿到这些值,大体思想这样,代码自己写把,应该能解决你的问题
[解决办法]
<c:set var= "chk "/>
<c:forEach var= "map " items= "hm ">
<c:if test= "${map.value== '疯狂 '} ">
<c:set var= "chk " value= "checked " />
</c:if>
</c:forEach>

<input name= "fengkuang " type= "checkbox " id= "fengkuang " value= "疯狂 " ${chk}>
[解决办法]
同一个操作提交了两遍
查询和新增都提交了吧
[解决办法]
<logic:iterate id= "a " name= "String " property= "value ">
这重循环改成值判断,循环的话就会出现你说的重复的复选框,但是这里只是显示1次

判断的话,可以在Action里写,hm{小的hmson},小的hmson里就放你要判断的内容,
比如:
hmSon={fengkuang= "疯狂 ",wenzhong= "稳重 ",langman= "浪漫 ",haodou= "好斗 "}
hmSon1={fengkuang= "疯狂 ",wenzhong= "稳重 ",langman= "浪漫 ",haodou= " "}
然后,就可以用键值来对应复选框了.

热点排行
Bad Request.