2015-02-15 3 views
0

Im пытается отобразить данные из Databse с помощью соединений. Мне удается отобразить первую таблицу, но при попытке отобразить другие данные я получаю ошибку с исключительным исключением. Я делаю это через Java-класс.Получение данных о строках из базы данных в JSP

Вот функция ...

public List<administration> fullList() throws Exception{ 

    List<administration> result = new ArrayList<administration>(); 

    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     connectMe = DriverManager.getConnection(url+dbName, userNameDB, passwordDB); 

     String query = "SELECT \n" + 
       " ControlAccess.UserName, \n" + 
       " ControlAccess.Pass, \n" + 
       " Users.First_Name,\n" + 
       " Users.Last_Name, \n" + 
       " UserInfo.Age, \n" + 
       " UserInfo.Country,\n" + 
       " UserInfo.Address,\n" + 
       " UserInfo.ZipCode,\n" + 
       " Sessions.Matrix1,\n" + 
       " Sessions.Matrix2,\n" + 
       " Sessions.Result,\n" + 
       " FilePath.LocationFiles\n" + 
       " FROM MatrixUsers.UserInfo \n" + 
       " INNER JOIN MatrixUsers.Users\n" + 
       " ON UserInfo.idUserInfo = Users.idUsers\n" + 
       " INNER JOIN MatrixUsers.ControlAccess \n" + 
       " ON ControlAccess.idControlAccess = UserInfo.idUserInfo\n" + 
       " INNER JOIN MatrixUsers.Sessions \n" + 
       " ON Sessions.idSessions = ControlAccess.idControlAccess\n" + 
       " INNER JOIN MatrixUsers.FilePath \n" + 
       " ON FilePath.idFilePath = Sessions.idSessions"; 

     selectUsers = connectMe.prepareStatement(query); 
     results = selectUsers.executeQuery(); 

     while(results.next()) { 

      administration admin = new administration(); 

      admin.setUserName(results.getString("UserName")); 
      admin.setPassword(results.getString("Pass")); 
      admin.setFirstname(results.getString("First_Name")); 
      admin.setLastname(results.getString("Last_Name")); 
      admin.setAge(results.getInt("Age")); 
      admin.setCountry(results.getString("Country")); 
      admin.setAddress(results.getString("Address")); 
      admin.setZipcode(results.getInt("ZipCode")); 
      admin.setMatrix1(results.getString("Matrix1")); 
      admin.setMatrix2(results.getString("Matrix2")); 
      admin.setResult(results.getString("Result")); 
      admin.setLocation(results.getString("LocationFiles")); 
      result.add(admin); 

     } 

     results.close(); 
     connectMe.close(); 

    }catch(Exception e) { 
     e.printStackTrace(); 
    } 

    return result; 
} 

Вот наборы и получает:

public String getUsername() { 
    return username;  
} 

public String getPassword() { 
    return password; 
} 

public String getFirstname() { 
    return firstName; 
} 

public String getLastname() { 
    return lastName; 
} 

public int getAge() { 
    return age; 
} 

public String getCountry() { 
    return country; 
} 

public String getAddress() { 
    return address; 
} 

public int getZipcode() { 
    return zipcode; 
} 

public String getMatrix1() { 
    return Matrix1; 
} 

public String getMatrix2() { 
    return Matrix2; 
} 

public String getResult() { 
    return Result; 
} 

public String getLocation() { 
    return location; 
} 

public int getID() { 
    return id; 
} 

public void setUserName(String aUser) { 
    username = aUser; 
} 

public void setPassword(String aPass) { 
    password = aPass; 
} 

public void setFirstname(String aFirstname) { 
    firstName = aFirstname; 
} 

public void setLastname(String aLastname) { 
    lastName = aLastname; 
} 

public void setAge(int anAge) { 
    age = anAge; 
} 

public void setCountry(String aCountry) { 
    country = aCountry; 
} 

public void setAddress(String anAddress) { 
    address = anAddress; 
} 

public void setZipcode(int aZipcode) { 
    zipcode = aZipcode; 
} 

public void setMatrix1(String aMatrix) { 
    Matrix1 = aMatrix; 
} 

public void setMatrix2(String aMatrix) { 
    Matrix2 = aMatrix; 
} 

public void setResult(String aResult) { 
    Result = aResult; 
} 

public void setLocation(String aLocation) { 
    location = aLocation; 
} 

я показываю с помощью итерации в JSP. Любая дополнительная информация, которую вам нужно просто спросить! Я буду смотреть, могу ли я сам найти ошибку. Также я приношу свои извинения за огромный запрос запроса, его часть задания и его требования.

JSP код:

<table> 
     <c:forEach var="admin" items="${result}"> 
      <tr> 

       <td><c:out value = "${admin.username}" /> </td> 
       <td>${admin.password} </td> 
       <td>${admin.firstName} </td> 
       <td>${admin.lastName} </td> 
       <td>${admin.age} </td> 
       <td>${admin.country} </td> 
       <td>${admin.address} </td> 
       <td>${admin.zipcode} </td> 
       <td>${admin.Matrix1} </td> 
       <td>${admin.Matrix2} </td> 
       <td>${admin.Result} </td> 
       <td>${admin.location} </td> 
      </tr> 


     </c:forEach> 

    </table> 

Ошибка стека:

javax.el.PropertyNotFoundException: Property 'firstName' not found on type matrixcalculator.administration 
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229) 
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206) 
javax.el.BeanELResolver.property(BeanELResolver.java:317) 
javax.el.BeanELResolver.getValue(BeanELResolver.java:85) 
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104) 
org.apache.el.parser.AstValue.getValue(AstValue.java:182) 
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) 
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:967) 
org.apache.jsp.showFullList_jsp._jspx_meth_c_005fforEach_005f0(showFullList_jsp.java:149) 
org.apache.jsp.showFullList_jsp._jspService(showFullList_jsp.java:98) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
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:727) 
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:750) 
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:720) 
org.apache.jsp.processInfo_jsp._jspService(processInfo_jsp.java:88) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
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:727) 

-Silvestrini

+0

Расскажите, пожалуйста, из какой строки нулевого указателя исключение пришло из .. –

+0

@ Олли Джонс проблемы начинается при попытке отобразить ПгвЬЫат. Обратите внимание, что это происходит в JSP. Я получаю имя пользователя и пароль, но из firstName и вниз. Я получаю исключение null-указателя. Я отредактирую код, чтобы показать JSP. EDITED TO SHOW JSP – Silvestrini

+0

@Silvestrini Когда вы спрашиваете об исключении, ВСЕГДА публикуем полную трассировку стека исключения. Читайте http: // stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it –

ответ

1

Сообщение об исключении очень ясно:

недвижимости 'ПгвЬЫате' не найдено по типу matrixcalculator.administratio п

Это означает, что не существует никакого способа со следующей подписью в классе matrixcalculator.administration:

public String getFirstName() 
+0

У меня есть все методы get и sets для каждого атрибута, объявленного в моем классе. Вы имеете в виду, что я должен называть это явным образом? – Silvestrini

+0

Нет, я имею в виду, что у вас его нет. Где код, чтобы доказать это? Отправьте его в свой вопрос. –

+0

Я редактировал и размещал методы. Это то, что вы имеете в виду? – Silvestrini

1

javax.el.PropertyNotFoundException: Свойство 'FirstName' не найден на типа matrixcalculator.administration

Это означает, что данный класс не имеет следующего метода:

public SomeObject getFirstName() { 
    return firstName; 

, если этот метод присутствует, то убедитесь, что подпись точно так же она должна быть public и принять no arguments

Update

Проблема Ваш getterName не в camelCase тогда переменное имя в верблюжьего

public String getFirstname() { 
    return firstName; 
} 

изменить его

public String getFirstName() { // N should be capital 
    return firstName; 
} 
+0

Отредактировал вопрос, разместил все наборы и получил! – Silvestrini

+0

проверить мою отредактированную часть –

+0

Вы используете 'getFirstname', это должно быть' getFirstName' –

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