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里面完成
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里面完成
解决方案 »
- 一道面试题?
- org.apache.commons.net.ftp.FTPClient包中如何用listFiles方法列举隐藏文件
- 如何在弹出窗口上放按钮
- 用jtds能否连接mysql,相应的url等配置
- 关于 select的问题,online Thanks!
- 关于后台输出到前台问题【急求】
- 有人有jsp+Dreamweaver 4 做的带权限登陆的样板吗?
- 如何将自1970-01-01 00:00:01到当前时间的总秒数转化成日期格式 在线等待
- 如果连接SQL SERVER数据库,请给出代码,并附简单查询!
- 怎么用jquery做查询弹窗?
- 求救,在一个页面中 如何刷新 另外一个页面
- 异常捕获问题!!!
1.显示所有选框。
2.利用传递过来的值判断哪个选框需要选中.(用javascript实现onload)
<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}>
这重循环改成值判断,循环的话就会出现你说的重复的复选框,但是这里只是显示1次判断的话,可以在Action里写,hm{小的hmson},小的hmson里就放你要判断的内容,
比如:
hmSon={fengkuang="疯狂",wenzhong="稳重",langman="浪漫",haodou="好斗"}
hmSon1={fengkuang="疯狂",wenzhong="稳重",langman="浪漫",haodou=""}
然后,就可以用键值来对应复选框了.