2013-11-26 4 views
0

Я хочу, чтобы извлечь всю таблицу из базы данных и отобразить его на мою страницу JSP, но я получаю сообщение об ошибкеИзвлечение таблицы из базы данных: javax.el.PropertyNotFoundException

моего StaffBean. Java является

package com.staff.bean; 
import java.util.Date; 
import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 


public class StaffBean { 

    private String date; 
    private int workload; 
    private int hourId; 
    private int daysId; 
    private int staffId; 
    private String StaffName; 
    private String ActiveORInactive; 
    private String Stafftype; 
    private String subcode; 
    private boolean valid = false; 

public String getdate() { 
    // DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
// Date date = new Date(); 
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); // your template here 
    java.util.Date dateStr = null; 
    try { 
     dateStr = formatter.parse(date); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    java.sql.Date dateDB = new java.sql.Date(dateStr.getTime()); 
    return formatter.format(dateDB); 
} 
public void setdate(String date){ 
    this.date=date; 
} 
public int gethourId() { 
    return hourId; 
} 
public void sethourId(int hourId) { 
    this.hourId = hourId; 
} 
public int getdaysId() { 
    return daysId; 
} 
public void setdaysId(int daysId) { 
    this.daysId = daysId; 
} 
public int getworkload() { 
    return hourId; 
} 
public void setworkload(int workload) { 
    this.workload = workload; 
} 
    public int getstaffId() { 
     return staffId; 
    } 
    public void setstaffId(int staffId) { 
     this.staffId = staffId; 
    } 
    public String getStaffName() { 
     return StaffName; 
    } 
    public void setStaffName(String StaffName) { 
     this.StaffName = StaffName; 
    } 
    public String ActiveORInactive() { 
     return ActiveORInactive; 
    } 
    public void setActiveORInactive(String ActiveORInactive) { 
     this.ActiveORInactive = ActiveORInactive; 
    } 

    public String getStafftype() { 
     return Stafftype; 
    } 
    public void setStafftype(String Stafftype) { 
     this.Stafftype = Stafftype; 
    } 
    public String getsubcode() { 
     return Stafftype; 
    } 
    public void setsubcode(String subcode) { 
     this.subcode = subcode; 
    } 

    public boolean isValid() { 
     return valid; 
    } 
    public void setValid(boolean valid) { 
     this.valid = valid; 
    } 


} 

и мой GetAllDetailDAO.java является

package com.staff.DAO; 
import java.sql.Connection; 
import java.sql.ResultSet; 
    import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 

    import com.staff.bean.StaffBean; 
    import com.staff.DB.ConnectionProvider; 
    public class GetAllDetailDAO { 

    Connection con; 
    Statement stmt; 
    private int noOfRecords; 

    public List<StaffBean> viewAllStaff(int offSet, int noOfRecords){ 

     List<StaffBean> list = new ArrayList<StaffBean>(); 
     StaffBean _staffBean; 
     try { 
      con = ConnectionProvider.getConnection(); 
      stmt = con.createStatement(); 
      ResultSet rs = stmt.executeQuery("select SQL_CALC_FOUND_ROWS * from tblstaffdetails limit "+offSet+","+noOfRecords); 
        //+offSet+","+noOfRecords); 
      //SQL_CALC_FOUND_ROWS 
      while(rs.next()){ 
       _staffBean = new StaffBean(); 
       _staffBean.setStaffName(rs.getString("StaffName")); 
       _staffBean.setstaffId(rs.getInt("staffId")); 
       _staffBean.setActiveORInactive(rs.getString("ActiveORInactive")); 
       _staffBean.setStafftype(rs.getString("Stafftype")); 
       list.add(_staffBean); 
      } 
      rs.close();   
      rs = stmt.executeQuery("SELECT FOUND_ROWS()"); 
      if(rs.next()) 
      this.noOfRecords = rs.getInt(1); 

     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


     return list; 

    } 
    public int getNoOfRecords() { 
     return noOfRecords; 
    } 
} 

поставщик соединения пакет com.staff.DB;

import java.sql.*; 

public class ConnectionProvider { 
    static Connection con; 
    static String url; 

    public static Connection getConnection() throws SQLException{ 
     try{ 
       Class.forName("com.mysql.jdbc.Driver"); 
      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/StaffAllocation","root", "success"); 
     }catch(ClassNotFoundException cnf){ 
      cnf.printStackTrace(); 
     } 

     return con; 

    } 

} 

и мой GetAllDetailServlet.java является

package com.staff.servlet; 
    import java.io.IOException; 
    import java.util.List; 
    import java.sql.*; 

    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 com.staff.bean.StaffBean; 
    import com.staff.DAO.GetAllDetailDAO; 
    import com.staff.DB.*; 

    @WebServlet("/GetAllDetailServlet") 
    public class GetAllDetailServlet extends HttpServlet{ 




/** 
* Servlet implementation class GetAllDetailsServlet 
*/ 


    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public GetAllDetailServlet() { 
     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 

     int page = 1; 
     int recordsPerPage = 4; 
     if(request.getParameter("page") != null) 
      page = Integer.parseInt(request.getParameter("page")); 
      GetAllDetailDAO allDetailDAO = new GetAllDetailDAO(); 
      List<StaffBean> list = allDetailDAO.viewAllStaff((page-1)*recordsPerPage, recordsPerPage); 
     int noOfRecords = allDetailDAO.getNoOfRecords(); 
     int noOfPages = (int) Math.ceil(noOfRecords * 1.0/recordsPerPage); 
      request.setAttribute("staffList", list); 
     request.setAttribute("noOfPages", noOfPages); 
     request.setAttribute("currentPage", page); 
      RequestDispatcher view = request.getRequestDispatcher("jsp/displayAllDetail.jsp"); 
      view.forward(request, response); 

     } 
     } 

и мой DisplayAllDetail.jsp является

<html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="css/style.css"/> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title> :: All Details</title> 
    </head> 
    <body> 
    <fieldset> 
    <table border="1" cellpadding="4" cellspacing="4" align="center"> 
<tr> 
<th>staffId</th> 
    <th>StaffName</th> 
    <th>ActiveORInactive</th> 
    <th>Stafftype</th> 
    <c:forEach var="_staffBean" items="${staffList}"> 
     <tr> 
      <td>${_staffBean.staffId}</td> 
      <td>${_staffBean.StaffName}</td> 
      <td>${_staffBean.ActiveORInactive}</td> 
      <td>${_staffBean.Stafftype}</td>   
     </tr> 
    </c:forEach> 
</tr> 
    </table> 
    <c:if test="${currentPage != 1}"> 
<td><a href="getAll.do?method=get&page=${currentPage - 1}">Prev</a></td> 
    </c:if> 
    <table border="1" cellpadding="5" cellspacing="5" align="center"> 
<tr> 
    <c:forEach begin="1" end="${noOfPages }" var="i"> 
     <c:choose> 
      <c:when test="${currentPage eq i }"> 
       <td>${i}</td> 
      </c:when> 
      <c:otherwise> 
       <td><a href="getAll.do?method=get&page=${i}">${i}</a></td> 
      </c:otherwise> 
     </c:choose> 
    </c:forEach> 
</tr> 
</table> 
<c:if test="${currentPage lt noOfPages }"> 
<td><a href="getAll.do?method=get&page=${currentPage+1 }">Next</a></td> 
</c:if> 
</fieldset> 
</body> 
</html> 

моя ошибка

HTTP Status 500 - An exception occurred processing JSP page /jsp/displayAllDetail.jsp at line 22 
    type Exception report 

    message An exception occurred processing JSP page /jsp/displayAllDetail.jsp at line 22 

    description The server encountered an internal error that prevented it from fulfilling this request. 

    exception 

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

19:   <c:forEach var="_staffBean" items="${staffList}"> 
20:    <tr> 
21:     <td>${_staffBean.staffId}</td> 
22:     <td>${_staffBean.StaffName}</td> 
23:     <td>${_staffBean.ActiveORInactive}</td> 
24:     <td>${_staffBean.Stafftype}</td>   
25:    </tr> 

StackTrace: org.apache. jasper.serv let.JspServletWrapper.handleJspException (JspServletWrapper.java:568) org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:470) org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:334) javax.servlet.http.HttpServlet.service (HttpServlet.java:728) com.staff.servlet.GetAllDetailServlet.doGet (GetAllDetailServlet.java : 56) javax.servlet.http.HttpServlet.service (HttpServlet.java:621) javax.servlet.http.HttpServlet.service (HttpServlet.java:728)

первопричиной

javax.el.PropertyNotFoundException: Property 'StaffName' not found on type com.staff.bean.StaffBean 
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:237) 
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:214) 
javax.el.BeanELResolver.property(BeanELResolver.java:325) 
javax.el.BeanELResolver.getValue(BeanELResolver.java:85) 
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104) 
org.apache.el.parser.AstValue.getValue(AstValue.java:183) 
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185) 
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026) 
org.apache.jsp.jsp.displayAllDetail_jsp._jspx_meth_c_005fforEach_005f0(displayAllDetail_jsp.java:157) 
org.apache.jsp.jsp.displayAllDetail_jsp._jspService(displayAllDetail_jsp.java:99) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
com.staff.servlet.GetAllDetailServlet.doGet(GetAllDetailServlet.java:56) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 

примечание. Полная трассировка стека основной причины доступна в журналах Apache Tomcat/7.0.42.

+0

Не просите о помощи в названии - все, кто задает вопрос, здесь хотят получить ответы. – tucuxi

+0

В getdate() вы разбираете строку даты в Date, а затем снова форматируете ее снова в String ???? Я действительно не думаю, что ты хочешь это сделать! – NickJ

+0

NickJ, пожалуйста, помогите мне с моей ошибкой. Я хочу получить таблицу и отобразить ее, можно ли помочь с этим? – user2951465

ответ

2

Попробуйте объявить

private String staffName; 
    private String activeORInactive; 
    private String stafftype; 

И не с заглавной буквы.

Я предлагаю вам следовать Java Code convertions

+0

, но я создал имя столбца, начинающегося с capitals .. bt, что изменится, если я отредактирую их в случае меньшего размера? – user2951465

+0

Как вы нарисовываете свой дБ? Вы используете OpenJpa, Hibernate? Как вы инициализируете ConnectionProvider? –

+0

Извините .. я включу поставщика подключения к моему вопросу сейчас – user2951465

0

В дополнение к правильному ответу Бланка Hdez, измените в JSP так дело staffName правильно:

<td>${_staffBean.StaffName}</td> 

должно быть:

<td>${_staffBean.staffName}</td> 

Обратите внимание на строчку 'for' staffName '- очень важно!

+0

Я попытался, но та же ошибка показана – user2951465

+0

Вы тоже сделали предложение Blanca Hdez? – NickJ

+0

да. Я попытался преобразовать в маленькие буквы. проверьте мою страницу jsp. ошибка указана в строке c: forEach var = "_ staffBean" items = "$ {staffList}" – user2951465

Смежные вопросы