gpt4 book ai didi

java - 处理JSP页面、数组列表时发生异常

转载 作者:太空宇宙 更新时间:2023-11-04 12:47:53 25 4
gpt4 key购买 nike

我无法弄清楚这个问题。

我的错误:

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 28

Line 28:             <c:forEach items="${data.visit}" var="visit">

java类:

 public class DataBean implements Serializable, ServletContextListener {

private static final String nameOfLogger = DataBean.class.getName();
private static final Logger logger = Logger.getLogger(nameOfLogger);

public class Visit {

public Visit(String dateOfTheVisit, String category, String idClient, String idInsrurer, String idDoctor, String idVisit,String accepted) {
this.dateOfTheVisit = dateOfTheVisit;
this.category = category;
this.idClient = idClient;
this.idInsrurer = idInsrurer;
this.idDoctor = idDoctor;
this.idVisit = idVisit;
this.accepted = accepted;
}

public String getIdVisit() {
return idVisit;
}

public void setIdVisit(String idVisit) {
this.idVisit = idVisit;
}

public String getDateOfTheVisit() {
return dateOfTheVisit;
}

public void setDateOfTheVisit(String dateOfTheVisit) {
this.dateOfTheVisit = dateOfTheVisit;
}

public String getCategory() {
return category;
}

public void setCategory(String category) {
this.category = category;
}

public String getIdClient() {
return idClient;
}

public void setIdClient(String idClient) {
this.idClient = idClient;
}

public String getIdInsrurer() {
return idInsrurer;
}

public void setIdInsrurer(String idInsrurer) {
this.idInsrurer = idInsrurer;
}

public String getIdDoctor() {
return idDoctor;
}

public void setIdDoctor(String idDoctor) {
this.idDoctor = idDoctor;
}

String idVisit;
String dateOfTheVisit;
String category;
String idClient;
String idInsrurer;
String idDoctor;
String accepted;

public String getAccepted() {
return accepted;
}

public void setAccepted(String accepted) {
this.accepted = accepted;
}

}

public class Insurer {

public Insurer(String idInsurer, String name) {
this.idInsurer = idInsurer;
this.name = name;
}

public String getIdInsurer() {
return idInsurer;
}

public void setIdInsurer(String idInsurer) {
this.idInsurer = idInsurer;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

String idInsurer;
String name;
}


//public List<Visit> visitArray = new ArrayList<>();
public List<Insurer> insurerArray = new ArrayList<>();

private java.sql.Connection psqlCon = null;
private boolean psqlConnectionCreated = false;


synchronized public ArrayList<Visit> getVisit() throws ClassNotFoundException, SQLException {
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres", "password");
Statement stm;
stm = conn.createStatement();
String sql = "Select * From Customer";
ResultSet rst;
rst = stm.executeQuery(sql);
ArrayList<Visit> visitArray = new ArrayList<>();
while (rst.next()) {
Visit visit = new Visit(rst.getString("dateOfTheVisit"), rst.getString("category"), rst.getString("idClient"), rst.getString("idInsurer"), rst.getString("idDoctor"), rst.getString("idVisit"),rst.getString("accepted"));
visitArray.add(visit);
}
return visitArray;
}

@Override
public void contextInitialized(ServletContextEvent sce) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.

}
}

jsp:

<%@page import="java.util.List"%>
<HTML>
<HEAD>
</HEAD>

<BODY>

<jsp:useBean id="data" class="sevenet.DataBean" scope="application"/>


<H1>The tableName Database Table </H1>

<TABLE BORDER="1">
<TR>
<TH>Date</TH>
<TH>Category</TH>
<TH>IdClient</TH>
<TH>IdInsurer</TH>
<TH>IdDoctor</TH>
<TH>Accepted</TH>
<TH>ID</TH>
</TR>
<tbody>
<c:forEach items="${data.visit}" var="visit">
<tr>
<td><c:out value="${visit.dateOfTheVisit}"/></td>
<td><c:out value="${visit.category}"/></td>
<td><c:out value="${visit.idClient}"/></td>
<td><c:out value="${visit.idInsrurer}"/></td>
<td><c:out value="${visit.idDoctor}"/></td>
<td><c:out value="${visit.idVisit}"/></td>
<td><c:out value="${visit.accepted}"/></td>
</tr>
</c:forEach>
</tbody>
</TABLE>


</BODY>
</HTML>

我不确定我做错了什么,但我认为这与 bean 的定义有关。

我感谢每一次提供帮助的尝试!

最佳答案

以下是我为让您的应用程序运行而所做的操作。

FolderStructure (文件夹结构的图像) ApplicationExample (应用程序运行示例)

创建 2 个新的 Java 包

(1)Servlet(2)列表

向列表添加 2 个类 (1)Visit.java (2)VisitListVariables.java向Servlet添加1个类(1)Servlet.java

内部 Visit.java

package lists;

import java.util.ArrayList;
import java.util.List;


public class Visit{
public static List<VisitListVariables> BuildVisitList(){

List<VisitListVariables> BuildVisitList = new ArrayList<>(); //creates List to return
try{
//Database connection variables
//Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres", "password");
//Statement stm;
//stm = conn.createStatement();
//String sql = "Select * From Customer";
//ResultSet rs;
//rs = stm.executeQuery(sql);


//while(rs.next()){
VisitListVariables buildList = new VisitListVariables(); //Gets variables needed for list
//String visitDate = rs.getString("visitDate");
String dateOfTheVisit = "today";
buildList.setDateOfTheVisit(dateOfTheVisit);
buildList.setCategory("Doctor Visit");
buildList.setIdClient("666");
buildList.setIdInsrurer("999");
buildList.setIdDoctor("1001");
buildList.setIdVisit("001");
buildList.setAccepted("yes");

BuildVisitList.add(buildList);
//}
//rs.close();stm.close();conn.close();

}catch(Exception e){}




return BuildVisitList;

}
}

内部 VisitListVariables.java

package lists;

public class VisitListVariables {
private String dateOfTheVisit;
private String category;
private String idClient;
private String idInsrurer;
private String idDoctor;
private String idVisit;
private String accepted;

public String getDateOfTheVisit() {
return dateOfTheVisit;
}

public void setDateOfTheVisit(String dateOfTheVisit) {
this.dateOfTheVisit = dateOfTheVisit;
}

public String getCategory() {
return category;
}

public void setCategory(String category) {
this.category = category;
}

public String getIdClient() {
return idClient;
}

public void setIdClient(String idClient) {
this.idClient = idClient;
}

public String getIdInsrurer() {
return idInsrurer;
}

public void setIdInsrurer(String idInsrurer) {
this.idInsrurer = idInsrurer;
}

public String getIdDoctor() {
return idDoctor;
}

public void setIdDoctor(String idDoctor) {
this.idDoctor = idDoctor;
}

public String getIdVisit() {
return idVisit;
}

public void setIdVisit(String idVisit) {
this.idVisit = idVisit;
}

public String getAccepted() {
return accepted;
}

public void setAccepted(String accepted) {
this.accepted = accepted;
}


}

Servlet.java内部

package Servlet;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lists.Visit;
import lists.VisitListVariables;


public class Servlet extends HttpServlet {

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

List<VisitListVariables> visit = Visit.BuildVisitList();
request.setAttribute("visitParam", visit); // Will be available as ${visitParam} in JSP
request.getRequestDispatcher("/test.jsp").forward(request, response);

}

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>

}

在jsp中我命名为test.jsp

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

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<TITLE>The tableName Database Table </TITLE>
</head>

<body>


<H1>The tableName Database Table </H1>

<table BORDER="1">
<tr>
<th>Date</th>
<th>Category</th>
<th>IdClient</th>
<th>IdInsurer</th>
<th>IdDoctor</th>
<th>Accepted</th>
<th>ID</th>
</tr>
<tbody>
<c:forEach items="${visitParam}" var="visit">
<tr>
<td><c:out value="${visit.dateOfTheVisit}"/></td>
<td><c:out value="${visit.category}"/></td>
<td><c:out value="${visit.idClient}"/></td>
<td><c:out value="${visit.idInsrurer}"/></td>
<td><c:out value="${visit.idDoctor}"/></td>
<td><c:out value="${visit.idVisit}"/></td>
<td><c:out value="${visit.accepted}"/></td>
</tr>
</c:forEach>
</tbody>
</table>


</body>
</html>

Web.xml(通常您会有一个带有链接的索引页 <a href='/Servlet'>Visits</a>这将指向您的 servlet,但为了进行测试,您可以在 url 中输入 servlet//localhost:8080/ProjectName/Servlet)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>Servlet</servlet-name>
<servlet-class>Servlet.Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/Servlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>Servlet</welcome-file>
</welcome-file-list>
</web-app>

关于java - 处理JSP页面、数组列表时发生异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36133851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com