在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>