4

我有一个用于存储和编辑一组数据的 HTML 表单。我的表格中也有一个下拉框。打开编辑页面时我的问题是如何将下拉列表的默认值设置为我刚从数据库中获得的值。目前,我使用 JSTL 标记通过 if 条件添加属性“selected”。但是,如果我在下拉列表中有 100 个值,则执行 if 条件 100 次看起来不是一个好选择。这是我现在所拥有的。

<select name="outageType" id="outageType" class="span3">
<option
<c:if test='${operation.type == "Type1"}'>selected="selected"</c:if>
value="Type1">Type1</option>
<option
<c:if test='${operation.type == "Type2"}'>selected="selected"</c:if>
value="Type2">Type2</option>
<option
<c:if test='${operation.type == "Type3"}'>selected="selected"</c:if>
value="Type3">Type3</option>
</select>

因此,如果我有 100 个值,那么最好的编码方式是什么。我正在使用带有 SQL 数据库的 JSP/Servlet。

4

1 回答 1

3

既然你有一个 SQL 数据库,我想你可以列出 100 种操作类型。如果您创建一个ArrayList<String>包含类型并将其设置为名为的请求属性operationTypes,您可以使用它c:forEach来遍历列表:

<select name="outageType" id="outageType" class="span3">
  <c:forEach items="${operationTypes}" var="operationType">
    <option ${operation.type == operationType
             ? 'selected="selected"' 
             : ''
             } value="<c:out value="${operationType}"/>">
      <c:out value="${operationType}"/>
    </option>
  </c:forEach>
</select>
于 2012-09-20T22:06:34.160 回答