如何在JSP中设置下拉/选择的默认值?

eqqqjvef  于 2022-12-16  发布在  其他
关注(0)|答案(4)|浏览(384)

我有一个字符串的数组列表 eqArray
我需要在一个下拉列表中显示它,为此我在JSP中使用了以下代码:

<% 

    for(int count=0;count<eqArray.size();count++){ %>
            <option value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>  
     <%} 
%>

我有一个eqName String,它是eqArray的一部分,默认情况下应该是选定值。
我怎样才能做到这一点,而不必检查和设置第一个选项为eqName始终?

1zmg4dgp

1zmg4dgp1#

<% for(int count=0; count<eqArray.size(); count++){ %>
    <option value="<%= eqArray.get(count) %>" <%= (eqArray.get(count).equals("eqName"))?"selected":"" %> ><%= eqArray.get(count) %></option>  
<%} %>
zlhcx6iw

zlhcx6iw2#

将数组中eqName元素的索引更改为0,或使用条件语句。

<% 
for(int count=0; count < eqArray.size(); count++){ %>
        <%if(eqArray.equals("eqName"){ %>           
            <option  selected="selected" value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>  
        <%} %> 
        <option value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>  
 <%} %>

但是使用JSTL标记库而不是使用scriptlet。

i34xakig

i34xakig3#

您可以通过JQuery来完成,恕我直言,JQuery更干净:

<select data-selected="${eqName}">
<% 
    for(int count=0;count<eqArray.size();count++){ %>
            <option value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>  
     <%} 
%>
</select>

在本页末尾:

<script type="text/javascript">
  $("select[data-selected]").each(function() {
      var selected = $(this).data("selected");
      $("select[data-selected='" + selected + "'] option[value='" + selected + "']").attr("selected", "selected");
  })
</script>

通过这种方式,你只需要在你的每个页面上包含js。
顺便说一句,我推荐您使用JSTL和EL,它们可读性更强:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<select data-selected="${eqName}">
  <c:forEach items="${eqArray}" var="model">
    <option value="${model}">${model}</option>
  </c:forEach>
</select>
p8h8hvxi

p8h8hvxi4#

您可以通过两种方式实现这些功能

  • 通过使用jsp
  • “选定=“选定”〉
  • 通过在选择框代码末尾使用Javascript

文档.getElementById(“选择框ID”).值="”
请使用选择框id而不是selectBoxID id

相关问题