2012-04-12 8 views
4

Ich habe eine Arraylist für Strings eqArray.Wie setze ich den Standardwert für Drop-Down/Select in JSP?

Ich brauche es in einer Dropdown-Liste anzuzeigen, für die ich in meinem JSP folgend bin mit:

<% 

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

Ich habe einen eqname String, den Teil ist von eqArray und sollte standardmäßig der ausgewählte Wert sein.

Wie gehe ich darüber, ohne die erste Option immer als eqName zu überprüfen und einzustellen?

+0

Sie ohne zu prüfen, für die eqname Zustand nicht erreichen können. – Phani

Antwort

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

Ändern Sie den Index des Elements eqName im Array in 0, oder verwenden Sie eine bedingte Anweisung.

<% 
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> 
<%} %> 

aber verwenden Sie JSTL taglibs anstelle von Scriptlets.

2

Sie können es über JQuery tun, was meiner Meinung nach mehr sauber:

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

Am Ende der Seite:

<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> 

Auf diese Weise müssen Sie nur die js schließen auf jeder deiner Seite.

BTW, empfehle ich Ihnen JSTL und EL zu verwenden, die besser lesbar ist:

<%@ 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

Sie diese auf zwei Arten implementieren können

  • von jsp mit
  • "ausgewählt = "ausgewählt">
  • Mit Javascript am Ende des Auswahlfelds Code

    document.getElementById ('selectBoxID'). Value = ""

    statt selectBoxID ID verwenden, um die Auswahlbox ID