Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JSP中设置下拉/选择的默认值?_Java_Jsp_Select_Input_Options - Fatal编程技术网

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

Java 如何在JSP中设置下拉/选择的默认值?,java,jsp,select,input,options,Java,Jsp,Select,Input,Options,我有一个字符串eqArray的数组列表 我需要在一个下拉列表中显示它,我在JSP中使用以下内容: <% for(int count=0;count<eqArray.size();count++){ %> <option value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option> <%} %>

我有一个字符串eqArray的数组列表

我需要在一个下拉列表中显示它,我在JSP中使用以下内容:

<% 

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


我有一个eqName字符串,它是eqArray的一部分,默认情况下应该是选定的值


如何在不必检查第一个选项并将其设置为eqName always的情况下执行此操作?

将数组中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。


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

您可以通过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>

$(“选择[所选数据]”)。每个(函数(){
所选变量=$(此).data(“所选”);
$(“选择[data selected='”+selected+']选项[value='“+selected+']”)attr(“selected”、“selected”);
})
通过这种方式,您只需要在每个页面中包含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>

${model}

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

  • 通过使用jsp
  • “selected=”selected“>
  • 在选择框代码的末尾使用Javascript

    document.getElementById('selectBoxID')。value=“” 使用选择框id代替selectBoxID id


如果不检查eqName条件,则无法完成。