<input tpye="checkbox" name="hobby" value="1">a
<input tpye="checkbox" name="hobby" value="2">b
<input tpye="checkbox" name="hobby" value="3">c
<input tpye="checkbox" name="hobby" value="4">d 比如说选中了 abc这三个框,将数据拿到并拼成String s ="1,2,3"; 将s存放到数据库中,但是如果要做一个查询,使选中的信息对应的复选框被选中如何做? 我是这样做的:将String s="1,2,3"; 分割出来放到一个list中,然后将list方在requestScope范围内,在Jsp上用<c:forEach>对这个list遍历,然后判断出对应的 value值,让对应的被选中。但是结果是出现了3组相同的复选框,每一组有一个对应的复选框被选中,该如何做才能只出现一组复选框让以上的abc都被选中?
<input tpye="checkbox" name="hobby" value="2">b
<input tpye="checkbox" name="hobby" value="3">c
<input tpye="checkbox" name="hobby" value="4">d 比如说选中了 abc这三个框,将数据拿到并拼成String s ="1,2,3"; 将s存放到数据库中,但是如果要做一个查询,使选中的信息对应的复选框被选中如何做? 我是这样做的:将String s="1,2,3"; 分割出来放到一个list中,然后将list方在requestScope范围内,在Jsp上用<c:forEach>对这个list遍历,然后判断出对应的 value值,让对应的被选中。但是结果是出现了3组相同的复选框,每一组有一个对应的复选框被选中,该如何做才能只出现一组复选框让以上的abc都被选中?
<html>
<%
String s = request.getAtrribute("s");//后台从数据库里取到的值
String arr = s.split(",");
List list = new ArrayList();
for(int i=0;i<arr.length;i++){
list.add(arr[i]);
}
%>
<body>
<input tpye="checkbox" name="hobby" value="1" <%=(list.contants("1")>"checked":"")%>>a
<input tpye="checkbox" name="hobby" value="2" <%=(list.contants("2")>"checked":"")%>>b
<input tpye="checkbox" name="hobby" value="3" <%=(list.contants("3")>"checked":"")%>>c
<input tpye="checkbox" name="hobby" value="4" <%=(list.contants("4")>"checked":"")%>>d
</body>
</html>
<c:if items="s=='1'">
<input tpye="checkbox" name="hobby" value="1" checked>a
</c:if>
<c:if items="s!='1'">
<input tpye="checkbox" name="hobby" value="1" unchecked>a
</c:if>
....//每一个都是这样判断的,出现的结果就是list有几个数字就会出现几组相同的checkbox
</c:forEach>
结果就像这样:
<input tpye="checkbox" name="hobby" value="1" checked>a
<input tpye="checkbox" name="hobby" value="2">b
<input tpye="checkbox" name="hobby" value="3">c
<input tpye="checkbox" name="hobby" value="4">d <input tpye="checkbox" name="hobby" value="1">a
<input tpye="checkbox" name="hobby" value="2" checked>b
<input tpye="checkbox" name="hobby" value="3">c
<input tpye="checkbox" name="hobby" value="4">d <input tpye="checkbox" name="hobby" value="1">a
<input tpye="checkbox" name="hobby" value="2">b
<input tpye="checkbox" name="hobby" value="3" checked>c
<input tpye="checkbox" name="hobby" value="4">d
<c:forEach var="s" items="${requestScope.list }">
<c:set var="sum" value="${sum + 1}" />
<c:choose>
<c:when test="${sum == '1' }"><c:set var="str" value="a"/></c:when>
<c:when test="${sum == '2' }"><c:set var="str" value="b"/></c:when>
<c:when test="${sum == '3' }"><c:set var="str" value="c"/></c:when>
<c:when test="${sum == '4' }"><c:set var="str" value="d"/></c:when>
</c:choose>
<c:if test="${s == sum }"><input tpye="checkbox" name="hobby" value="${sum}" checked >${str }</input></c:if>
<c:if test="${s != sum }"><input tpye="checkbox" name="hobby" value="${sum}" checked >${str }</input></c:if>
</c:forEach>这样做应该可以做到你那种效果,有点麻烦,字符ASCII编码懒得查,要是多的话就不能一一给str付值了,只能循环用ASCII转了