在jsp页面中往往会有Checkbox框数据回显的时候遇到双重for循环,之前一直都是通过js来控制选中的,这次写了个jstl的方法,如果有更好的,希望有回帖!
<div class="form-group"> <label class="col-sm-3 control-label">分类*:</label> <div class="col-sm-8 innerbox" id="categorydiv"> <c:forEach items="${list }" var="ca"> <!-- 外层循环 --> <c:set var="eq_val" value="false"></c:set> <!-- 先设置两个值不相同 --> <c:forEach items="${cids }" var="ci"> <!-- 内层循环 --> <c:if test="${ci eq ca.id }"> <c:set var="eq_val" value="true"></c:set> <!-- 如果值相同修改属性 --> </c:if> </c:forEach> <label class="checkbox-inline"> <!-- 最后根据属性值来判断 --> <input type="checkbox" <c:if test="${eq_val }">checked="checked"</c:if> value="${ca.id }" name="category" id="${ca.id }"/><span>${ca.name }</span> </label> </c:forEach> </div> </div>