0

我正在尝试学习 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;
}



}

小服务程序:

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

1 回答 1

0

检查您是否在列表中获取值。在 DAO 类的 while 循环之后放置一些 SOP。

另外,代码有错误。它应该是

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

否则,它将为每个项目创建新的选择。

于 2012-07-12T06:13:58.490 回答