JSP/Servlet中如何从数据库设置HTML下拉列表的默认选项?

4

我有一个HTML表单用于存储和编辑一组数据。表单中还有一个下拉框。当我打开编辑页面时,我的问题是如何将下拉框的默认值设置为刚从数据库获取的值。目前,我使用JSTL标签通过if条件添加属性"selected"。但如果下拉框中有100个值,执行100次if条件并不是一个好的选择。这是我现在的代码。

<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/Servlets。

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接