0

我有一个 JSTL 标签,它通过从 20 运行到 60 来填充年龄下拉列表,如下所示

<c:forEach begin="20" end="60" var="i">
   <option value="${i}">${i}</option>
</c:forEach>

现在在编辑模式下,我想用来自 db 表的年龄填充年龄

假设年龄是 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>

如何在选择下拉列表中预先填充年龄。

谢谢您的回复

在此处输入图像描述

4

3 回答 3

1

试试这个 :

<c:if test="${User.age == i}"> selected="selected" </c:if>

确保将用户对象从控制器传递给 jsp。

于 2013-02-18T06:52:41.627 回答
1

使用错误的标签,何时应该与选择一起使用。请参阅此说明:


其工作方式类似于 Java 的 switch 语句,它允许您在多个备选方案之间进行选择。switch 语句有 case 语句的地方,标签有标签。switch 语句具有用于指定默认操作的默认子句,类似的方式具有默认子句。


如果喜欢,您可以使用:

<c:forEach begin="20" end="60" var="i">
 <option value="${i}" <c:if test ="${User.age == i}">selected</c:if>>${i}</option>
</c:forEach>
于 2013-02-18T06:56:22.820 回答
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>
于 2013-02-18T06:57:27.113 回答