- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我无法弄清楚这个问题。
我的错误:
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/
SQLite、Content provider 和 Shared Preference 之间的所有已知区别。 但我想知道什么时候需要根据情况使用 SQLite 或 Content Provider 或
警告:我正在使用一个我无法完全控制的后端,所以我正在努力解决 Backbone 中的一些注意事项,这些注意事项可能在其他地方更好地解决......不幸的是,我别无选择,只能在这里处理它们! 所以,我的
我一整天都在挣扎。我的预输入搜索表达式与远程 json 数据完美配合。但是当我尝试使用相同的 json 数据作为预取数据时,建议为空。点击第一个标志后,我收到预定义消息“无法找到任何内容...”,结果
我正在制作一个模拟 NHL 选秀彩票的程序,其中屏幕右侧应该有一个 JTextField,并且在左侧绘制弹跳的选秀球。我创建了一个名为 Ball 的类,它实现了 Runnable,并在我的主 Draf
这个问题已经有答案了: How can I calculate a time span in Java and format the output? (18 个回答) 已关闭 9 年前。 这是我的代码
我有一个 ASP.NET Web API 应用程序在我的本地 IIS 实例上运行。 Web 应用程序配置有 CORS。我调用的 Web API 方法类似于: [POST("/API/{foo}/{ba
我将用户输入的时间和日期作为: DatePicker dp = (DatePicker) findViewById(R.id.datePicker); TimePicker tp = (TimePic
放宽“邻居”的标准是否足够,或者是否有其他标准行动可以采取? 最佳答案 如果所有相邻解决方案都是 Tabu,则听起来您的 Tabu 列表的大小太长或您的释放策略太严格。一个好的 Tabu 列表长度是
我正在阅读来自 cppreference 的代码示例: #include #include #include #include template void print_queue(T& q)
我快疯了,我试图理解工具提示的行为,但没有成功。 1. 第一个问题是当我尝试通过插件(按钮 1)在点击事件中使用它时 -> 如果您转到 Fiddle,您会在“内容”内看到该函数' 每次点击都会调用该属
我在功能组件中有以下代码: const [ folder, setFolder ] = useState([]); const folderData = useContext(FolderContex
我在使用预签名网址和 AFNetworking 3.0 从 S3 获取图像时遇到问题。我可以使用 NSMutableURLRequest 和 NSURLSession 获取图像,但是当我使用 AFHT
我正在使用 Oracle ojdbc 12 和 Java 8 处理 Oracle UCP 管理器的问题。当 UCP 池启动失败时,我希望关闭它创建的连接。 当池初始化期间遇到 ORA-02391:超过
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve
引用这个plunker: https://plnkr.co/edit/GWsbdDWVvBYNMqyxzlLY?p=preview 我在 styles.css 文件和 src/app.ts 文件中指定
为什么我的条形这么细?我尝试将宽度设置为 1,它们变得非常厚。我不知道还能尝试什么。默认厚度为 0.8,这是应该的样子吗? import matplotlib.pyplot as plt import
当我编写时,查询按预期执行: SELECT id, day2.count - day1.count AS diff FROM day1 NATURAL JOIN day2; 但我真正想要的是右连接。当
我有以下时间数据: 0 08/01/16 13:07:46,335437 1 18/02/16 08:40:40,565575 2 14/01/16 22:2
一些背景知识 -我的 NodeJS 服务器在端口 3001 上运行,我的 React 应用程序在端口 3000 上运行。我在 React 应用程序 package.json 中设置了一个代理来代理对端
我面临着一个愚蠢的问题。我试图在我的 Angular 应用程序中延迟加载我的图像,我已经尝试过这个2: 但是他们都设置了 src attr 而不是 data-src,我在这里遗漏了什么吗?保留 d
我是一名优秀的程序员,十分优秀!