2012-07-12 57 views
0

我在學習Servlets/JSP。當我嘗試下面的代碼時,我沒有得到任何輸出。有人可以幫幫我嗎?當我運行代碼時,我只能看到標題,而且看不到下拉列表中顯示的值。MVC,Servlets,JSP,無輸出

import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.ResultSetMetaData; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 

public class VacationTrackerDAO { 

public static List<VactionTrackerBean> list() throws SQLException{ 
    List<VactionTrackerBean> appr= new ArrayList<VactionTrackerBean>(); 

    try{ 

     DBConnection conObj=new DBConnection(); 
     Connection dbCon= conObj.getCon(); 
     Statement stmt=conObj.getStmt(); 
     String queryCPList="select * from Capacity_Plan"; 
     String queryApprList="Select First_Last_Name from Vacation_Approvers"; 
     PreparedStatement preStmtCPList=dbCon.prepareStatement(queryCPList);//get metadat 
     PreparedStatement preStmtApprList=dbCon.prepareStatement(queryApprList);//get names 
     //ResultSet rsCPList=preStmtCPList.executeQuery(); 
     ResultSet rsApprList=preStmtCPList.executeQuery(); 

     //ResultSetMetaData metaCPList=rsCPList.getMetaData(); 

     VactionTrackerBean vtBean=new VactionTrackerBean(); 
     while(rsApprList.next()){ 
      vtBean.setApprover((rsApprList.getString("First_Last_Name"))); 
      appr.add(vtBean); 
     } 


}catch(Exception e){ 
    System.out.println("In the Vacation TrackerDAO.java class:"+e); 
} 
return appr; 

} 
} 

豆:

public class VactionTrackerBean { 

private String dates; 
private String approver; 
public String getDate() { 
    return dates; 
} 
public void setDate(String dates) { 
    this.dates = dates; 
} 
public String getApprover() { 
    return approver; 
} 
public void setApprover(String approver) { 
    this.approver = approver; 
} 



} 

的Servlet:

public class VacationTracker extends HttpServlet { 
private static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 

    doPost(request, response); 

} 


protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 

    try{ 


    List<VactionTrackerBean> vacTracker=VacationTrackerDAO.list(); 
    request.setAttribute("vacTracker", vacTracker); 
    request.getRequestDispatcher("WEB-INF/VacationTracker.jsp").forward(request,response); 

    }catch (SQLException e){ 
     System.out.println("Error in VacationTracker.java due to VactionTrackerDA.java:"+e); 
     request.getRequestDispatcher("WEB-INF/Error.jsp").forward(request,response); 
    } 

} 
} 

JSP頁面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01  Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Vacation Tracker</title> 
</head> 
<body> 

<h1> Vacation Tracker </h1> 

<div id="main"> 

<c:forEach items="${vacTracker}" var="vacTracker"> 
<select id="myselect" name="mydata" size="10"> 
<option value="${vacTracker.approver}">${vacTracker.approver}</option> 
</select> 
</c:forEach> 

</div> 


</body> 
</html> 
+0

到目前爲止,您已經完成了哪些調試步驟? – 2012-07-12 01:34:34

+0

我剛剛在上面的幾個類中放置了一些system.out.println,它工作正常......但它沒有在JPS中顯示任何下拉列表。我正在使用AJAX來顯示JSP頁面。 – VBJ 2012-07-12 02:10:05

回答

0

檢查你while循環後,一些SOP得到的list.Put值DAO類。

此外,代碼中存在錯誤。它應該是

<select id="myselect" name="mydata" size="10"> 
<c:forEach items="${vacTracker}" var="vacTracker"> 
    <option value="${vacTracker.approver}">${vacTracker.approver}</option> 
</c:forEach> 
</select> 

否則,它會爲每個項目創建新的選擇。

+0

謝謝,我做了上述更改,並能夠驗證沒有數據來自數據庫,並糾正它,並正常工作。 – VBJ 2012-07-12 23:33:42