我有一个JSTL标记,通过从20到60运行填充Age下拉
<c:forEach begin="20" end="60" var="i">
<option value="${i}">${i}</option>
</c:forEach>
现在处于编辑模式,我想用年龄来自db table
填充年龄假设年龄为25岁,那么应该在年龄dd中选择25岁。我尝试了一段代码,但这不起作用并显示jspTagexception
<c:forEach begin="20" end="60" var="i">
<option value="${i}" <c:when test ="${User.age == i}">selected</c:when>>${i}</option>
</c:forEach>
如何在选择下拉菜单中预先填充年龄。
感谢回复
答案 0 :(得分:1)
试试这个:
<c:if test="${User.age == i}"> selected="selected" </c:if>
确保将User对象从控制器传递给jsp。
答案 1 :(得分:1)
使用错误标签,何时应与选择一起使用。请参阅此说明:
作为Java switch语句的工作原理,它允许您在许多替代方案之间进行选择。如果switch语句具有case语句,则标记具有标记。一个switch语句有default子句来指定默认操作,类似的方式有default子句。
您可以使用if:
<c:forEach begin="20" end="60" var="i">
<option value="${i}" <c:if test ="${User.age == i}">selected</c:if>>${i}</option>
</c:forEach>
答案 2 :(得分:1)
您可以在其中使用Conditional operator
,而不是<c:when>
标记(仅与<c:choose>
标记一起使用):
<c:forEach begin="20" end="60" var="i">
<option value="${i}" ${User.age == i ? 'selected' : ''}>${i}</option>
</c:forEach>