2009-05-03 8 views
0

データベースにHTML形式のデータをいくつか提出しました。次に、別のフォームの<select>にそのデータの1列を読み込む必要があります。私はこれをしましたが、記録の数が増えるにつれてどのようにオプションの数を増やすのでしょうか?次のように<select>要素をJavaのデータベースから再ロードする方法

コードは次のとおりです。ここで

<%@ page import="java.util.*"%> 
<%@ page import="java.lang.*"%> 

<%! 
    ArrayList al; 
    Object o[]; 
    String s[] = new String[10]; 
%> 

<jsp:useBean id="c" class="com.ebbeans.ViewBean"/> 
<jsp:setProperty name="c" property="*"/> 

<% 
    al = c.loadExistingEmpCode(); 
    o = al.toArray(); 

    for (int i = 0; i < o.length; i++) { 
     s[i] = (String) o[i]; 
    } 
%> 

    .......... 
    .......... 

     <select name="empCode" size="1" id="empCode"> 
      <option value="<%= s[0] %>" selected><%= s[0] %></option> 
      <option value="<%= s[1] %>"><%= s[1] %></option> 
      <option value="<%= s[2] %>"><%= s[2] %></option> 
      <option value="<%= s[3] %>"><%= s[3] %></option> 
      <option value="<%= s[4] %>"><%= s[4] %></option> 
     </select> 

唯一の5つのオプションが表示されます。レコードが増えたときに、どのようにオプションの数を動的に増やすのですか?

答えて

0

私はC#のコーダーが、私はあなたがこのような何かしたいと考えている:JSP内ない使用スクリプトレットを行い、オフを開始するには

<%@ page import="java.util."%> 
    <%@ page import="java.lang."%> 
    <%! ArrayList al = c.loadExistingEmpCode(); 

     for(int i=0; i < ai.Count; i++) 
     { 

    %> 

    <option><%= ai[0].toString() %></option> 

    <% } %> 
2

を。彼らは10年来taglibとELに取って代わられています。一般的に使用されるタグライブラリはJSTLであり、正確にこの目的のために<c:forEach>タグを提供します。 ELを使用すると、JSPページのバックエンドデータにシームレスにアクセスできます。

ここでは、コードをどのように置き換えるのが最適かを説明します。

従業員:

public class Employee { 
    private Long code; 
    private String name; 
    // +getters +setters 
} 

EmployeeServlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    List<Employee> employees = employeeDAO.list(); 
    request.setAttribute("employees", employees); 
    request.getRequestDispatcher("employees.jsp").forward(request, response); 
} 

たemployees.jsp:

<select name="employee"> 
    <c:forEach items="${employees}" var="employee"> 
     <option value="${employee.code}">${employee.name}</option> 
    </c:forEach> 
</select> 

/employees/*url-patternにEmployeeServlet地図やhttp://example.com/contextroot/employeesことによってそれを呼び出します。幸運を祈ってJSP scriptletフリーを維持してください:)

関連する問題