2012-04-12 144 views
4

我有一个字符串阵列列表eqArray如何在JSP中设置下拉/选择的默认值?

我需要证明它在一个下拉列表,我正在用我的JSP如下:

<% 

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

我有一个eqName串,该部分的eqArray并且应该是默认选定的值。

我该如何解决这个问题,而不必检查并将第一个选项设置为eqName?

+0

你不能没有检查的eqName条件完成。 – Phani 2012-04-12 08:49:32

回答

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

将数组中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 taglibs而不是使用scriptlets。

2

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

您可以通过两种方式

  • 实现这些使用JSP
  • “选择= “selected”>
  • 通过在选择框代码末尾使用Javascript代码

    的document.getElementById( 'selectBoxID')。价值= “”

    代替selectBoxID ID使用选择框ID