最近在实习,好久没来写博客了,之后把印象较深的补上。
今天在实习过程中碰到一个这样的问题:我需要在jsp页面中写一个select,对每一个option进行判断,若其值为某特定值,设置为selected。
通过jstl标签和EL表达式进行编写:
<select class="input-text" style="width: 200px;"
id="BC_ID" name="BC_ID">
<c:forEach items="${BC_ID_LIST}" var="row">
<c:choose>
<c:when test="${row.BC_ID eq CHANNELID} ">
<option value="${row.BC_ID }" selected="selected">${row.BC_ID }</option>
</c:when>
<c:otherwise>
<option value="${row.BC_ID }">${row.BC_ID}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
但是,无论如何代码也不会走when标签里面,即test中条件不成立,但是经过调试,test中的两个字段都是有值的,并且存在相等情况,但是仍然不会进入when标签中。
最后发现,原因是test中花括号外,引号内,多出了一个空格,将该空格删除后,test便可以正常执行了。
<c:when test="${row.BC_ID eq CHANNELID}">