java - NoSuchMethodError: model.AddEvents.getStartDate()Ljava/lang/String;

标签 java jsp javabeans nosuchmethoderror

我不知道这里发生了什么。我使用 Date 数据类型将数据保存在数据库中,并且不断出现此错误 - 访问数据库时出错:javax.servlet.ServletException: java.lang.NoSuchMethodError: model.AddEvents.getStartDate()Ljava/lang/String;。我确信我的 servlet 部分有错误。我认为问题出在我的 servlet 和 java bean 中使用日期类型,因为最初我使用字符串并且它工作得很好。请帮助大家:)

   package model;

import java.util.Date;
public class AddEvents{
 private String title;
 private String eventDesc;
 private String StartTime;
 private String  EndTime;
 private double Budget;
 private java.util.Date StartDate;
 private java.util.Date EndDate;

 public String getTitle() {
    return title;
}
public void setTitle(String title) {
    this.title = title;
}
public String getEventDesc() {
    return eventDesc;
}
public void setEventDesc(String eventDesc) {
    this.eventDesc = eventDesc;
}

public String getStartTime() {
    return StartTime;
}
public void setStartTime(String startTime) {
    StartTime = startTime;
}
public String getEndTime() {
    return EndTime;
}
public void setEndTime(String endTime){
    EndTime=endTime;
}

public double getBudget() {
    return Budget;
}
public void setBudget(double budget) {
    Budget = budget;
}
public java.util.Date getStartDate() {
    return StartDate;
}
public void setStartDate(java.util.Date startDate) {
    StartDate = startDate;
}
public java.util.Date getEndDate() {
    return EndDate;
}
public void setEndDate(java.util.Date endDate) {
    EndDate = endDate;
}

}


AddEventsServlet:
package servlet;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.ListIterator;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import database.DBAO;
import database.Delete;
import model.AddEvents;


/**
 * Servlet implementation class AddEventsServlet
 */
@WebServlet("/AddEventsServlet")
public class AddEventsServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddEventsServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //doGet(request, response);


        AddEvents myEvent = new AddEvents();
        //create an object based on the Java class customers


        //Assignment of data
        myEvent.setTitle(request.getParameter("Title"));
        myEvent.setEventDesc(request.getParameter("EventDesc"));
        myEvent.setStartTime(request.getParameter("StartTime"));
        myEvent.setEndTime(request.getParameter("EndTime"));
        myEvent.setBudget(Double.valueOf(request.getParameter("Budget")));
        myEvent.setStartDate(java.sql.Date.valueOf(request.getParameter("StartDate")));
        myEvent.setEndDate(java.sql.Date.valueOf(request.getParameter("EndDate")));

        String title = request.getParameter("Title");
        String eventDesc= request.getParameter("EventDesc");
        String StartTime=request.getParameter("StartTime");
        String EndTime =request.getParameter("EndTime");
        double Budget=Double.valueOf(request.getParameter("Budget") );
        //double Budget=request.getParameter("Budget");
        Date StartDate=java.sql.Date.valueOf(request.getParameter("StartDate"));
        Date EndDate=java.sql.Date.valueOf(request.getParameter("EndDate"));



        System.out.println(myEvent.getTitle());
        System.out.println(myEvent.getEventDesc());
        System.out.println(myEvent.getStartTime());
        System.out.println(myEvent.getEndTime());
        System.out.println(myEvent.getBudget());
        //System.out.println(myEvent.getStartDate());
        //System.out.println(myEvent.getEndDate());
        java.util.Date date = myEvent.getStartDate();
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          System.out.println(sdf.format(date));

          java.util.Date date1 = myEvent.getEndDate();
          SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          System.out.println(sdf1.format(date1));

        request.setAttribute("Title",title);
        request.setAttribute("Details",eventDesc);
        request.setAttribute("Start Time",StartTime);
        request.setAttribute("End Time",EndTime);
        request.setAttribute("Budget",Budget);
        request.setAttribute("Start Date",StartDate);
        request.setAttribute("End Date",EndDate);

        try
        {
            DBAO myDatabase = new DBAO();
            ArrayList <AddEvents> myEventList = myDatabase.getAddEvents(); //not needed
            //AddEvents myEventDetails =myDatabase.isEvent(myEvent,title, eventDesc, StartTime, EndTime, Budget); //not needed

            HttpSession myRequest = request.getSession(true); //not needed
            request.setAttribute("EventList",myEventList); //not needed
            System.out.println(myEventList.size()); //not needed

            // you comment out the method that insert data to database
            myDatabase.AddEvents(myEvent,title,eventDesc,StartTime,EndTime,Budget,StartDate,EndDate);
            // the dispatcher can go to RetrieveServlet and let it handle the retrieve
            //myDatabase.delete(myEvent,title,eventDesc,StartTime,EndTime,Budget,StartDate,EndDate);
            //name of delete database
            request.getRequestDispatcher("Retrieve.jsp").forward(request, response);

    }catch(Exception ex)
        {
            System.out.println("Error Accessing Database:" +ex);
        }

    }

}

Retrieve.jsp:添加此内容是因为我刚刚意识到我的控制台在此 jsp 页面中显示错误 - Retrieve.jsp:java:183 它说

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@page import="model.AddEvents,java.util.ArrayList,java.util.ListIterator" %>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>


<script language="javascript">
function deleteRecord(id){
    var f=document.form;
    f.method="AddEvents";
    f.action='delete.jsp?id='+id;
    f.submit();
}
</script>


</head>
<body>
<%!ArrayList<AddEvents> myEventList; //have to declear in a declaration tag for access in the page %>
<% myEventList = (ArrayList<AddEvents>) request.getAttribute("EventList");
if(myEventList.size() == 0)
{
    %>
    <h2>No events</h2>
    <%
}
else
{
    %>

<table>
<%
ListIterator<AddEvents> li = myEventList.listIterator();

while(li.hasNext())
{
    AddEvents myEvent = new AddEvents();
    myEvent= (AddEvents)li.next();
    %>

 <%AddEvents event =(AddEvents)session.getAttribute("Event_Info"); %>
<tr><td>Title:</td><td><%= myEvent.getTitle() %></td><td></td></tr>
<tr><td>Details:</td><td><%= myEvent.getEventDesc() %></td><td> </td></tr>
<tr><td>StartTime:</td><td><%=myEvent.getStartTime() %></td><td></td></tr>
<tr><td>EndTime:</td><td><%= myEvent.getEndTime() %></td><td></td></tr>
<tr><td>Budget:</td><td><%=myEvent.getBudget()%></td><td></td></tr>
<tr><td>StartDate:</td><td><%=myEvent.getStartDate() %></td><td></td></tr>
<tr><td>EndDate:</td><td><%=myEvent.getEndDate() %></td>
<tr><td> <a href="delete.jsp"><img border="0" alt="delete" src="deleteIcon.png" width="20" height="20"></a></td>
<td><a href="AddEvent.jsp"><img border="0" alt="update" src="updateIcon.png" width="100" height="100"></a></td>
</tr>

<%}


%>
</table>
<%
}
%>
<input id='eventID' type="hidden" name="hiddEvent" value="">
<a href="AddEvent.jsp">Add Event</a>
</body>
</html>

最佳答案

您应该解析日期而不是System.out.println(myEvent.getStartDate());

Date date = myEvent.getStartDate()
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
System.out.println(sdf.format(date));

关于java - NoSuchMethodError: model.AddEvents.getStartDate()Ljava/lang/String;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45322737/

相关文章:

java - 如何将java生成的base64图像保存到服务器?

java - 在 Java 中获取 Iterable 的大小

java - 数据不会填充 ListView

java - session 超时后重定向到前一个用户上次访问的页面

hibernate - 在Custom AuthenticationProvider中找不到当前线程的 session

java - 什么是 Enterprise Java Bean?

java - Spring AMQP——@RabbitListener 是在幕后轮询吗?

javascript - JSP/JavaScript/JQuery : store html/javascript content in a variable + write it to textarea

java - 通过 JAVA JSP 显示所选日期和日期之间的日期

Java 日期和日历控件