我正在尝试构建一个项目,用户在该项目中提交故障单,并可在提交后稍后对其进行编辑。在创建故障单页面上有一个下拉菜单,用于选择具有选项的票证优先级 - 最高,高,中,低。数据库中有一个表用于优先级选项。当用户点击与票证对应的编辑链接时,用户被转发到编辑页面,其中显示票证的不同字段。为了显示优先级菜单的选定选项我正在执行此操作,如下所示
<select name="priority">
<c:forEach var="priority"items="${priorityList }">
<c:if test="${tempTicket.priorityId == priority.priorityId}">
<option value="${priority.priorityId }" selected="selected">${priority.priorityName}</option>
</c:if>
<option value="${priority.priorityId }">${priority.priorityName </option>
</c:forEach>
</select>
在此处,所选选项在编辑页面的下拉列表中显示两次,如何停止?有没有其他方法可以满足相同的目的?我尝试过使用两个<c:if>
。
答案 0 :(得分:4)
第一个解决方案:
<c:if test="${tempTicket.priorityId != priority.priorityId}">
<option value="${priority.priorityId }">${priority.priorityName }</option>
</c:if>
第二个解决方案:
<c:choose>
<c:when test="${tempTicket.priorityId != priority.priorityId}>
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
第三(也是最佳)解决方案:
<option value="${priority.priorityId }"
<c:if test="${tempTicket.priorityId == priority.priorityId}">selected="selected"</c:if>>
${priority.priorityName}
</option>
答案 1 :(得分:1)
jstl中的其他实现是
选择标签
<c:choose>
<c:when test="cond1">
Condition 1
</c:when>
<c:otherwise>
Condition 2 (if condition 1 is false)
</c:otherwise>
</c:choose>
答案 2 :(得分:1)
试试这个
<option value="${priority.priorityId }"
${tempTicket.priorityId == priority.priorityId? "selected" : ""}
>${priority.priorityName}</option>