I am trying to display an arraylist in a JSP. I can query and display some of the elements in my model object, PoststackModel, but some of arraylist elements throw an error. In particular, I cannot display 'uniquedataid'. I do not understand why. Hope someone can help.
In my JSP, I can loop through some of the elements. This works:
<c:forEach var="input" items="${listInput}" >
${input.dataname},
${input.dataid},
${input.surveyname},
${input.surveyid},
${input.projectname},
${input.projectid},
${input.comments}<br>
</c:forEach>
But when I add 'uniquedataid', as such:
<c:forEach var="input" items="${listInput}" >
${input.uniquedataid},
${input.dataname},
${input.dataid},
${input.surveyname},
${input.surveyid},
${input.projectname},
${input.projectid},
${input.comments}<br>
</c:forEach>
I get the following error:
org.apache.jasper.JasperException: An exception occurred processing [/JSP/Viewers/Viewer_2D_Tabs_8.jsp] at line [114]
111: -->
112:
113: <c:forEach var="input" items="${listInput}" >
114: ${input.uniquedataid},
115: ${input.dataname},
116: ${input.dataid},
117: ${input.surveyname},
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:617)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.luminajio.viewers.Call_2DView.doGet(Call_2DView.java:47)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
javax.el.PropertyNotFoundException: Property [uniquedataid] not found on type [com.luminajio.input.poststack.PoststackModel]
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:260)
javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212)
javax.el.BeanELResolver.property(BeanELResolver.java:333)
javax.el.BeanELResolver.getValue(BeanELResolver.java:92)
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:113)
org.apache.el.parser.AstValue.getValue(AstValue.java:169)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:944)
org.apache.jsp.JSP.Viewers.Viewer_005f2D_005fTabs_005f8_jsp._jspx_meth_c_005fforEach_005f0(Viewer_005f2D_005fTabs_005f8_jsp.java:618)
org.apache.jsp.JSP.Viewers.Viewer_005f2D_005fTabs_005f8_jsp._jspService(Viewer_005f2D_005fTabs_005f8_jsp.java:288)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.luminajio.viewers.Call_2DView.doGet(Call_2DView.java:47)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
My Data Model:
package com.luminajio.input.poststack;
public class PoststackModel {
private String uniquedataid;
private String uniquejobid;
private int dataid;
private String dataname;
private int projectid;
private String projectname;
private int surveyid;
private String surveyname;
private String dataformat;
private String comments;
public PoststackModel(String uniquedataid, String uniquejobid, int dataid, String dataname, int projectid,
String projectname, int surveyid, String surveyname, String dataformat, String comments) {
super();
this.uniquedataid = uniquedataid;
this.uniquejobid = uniquejobid;
this.dataid = dataid;
this.dataname = dataname;
this.projectid = projectid;
this.projectname = projectname;
this.surveyid = surveyid;
this.surveyname = surveyname;
this.dataformat = dataformat;
this.comments = comments;
}
public String getuniquedataId() {
return uniquedataid;
}
public void setuniquedataId(String uniquedataid) {
this.uniquedataid = uniquedataid;
}
public String getUniquejobId() {
return uniquejobid;
}
public void setuniquejobId(String uniquejobid) {
this.uniquejobid = uniquejobid;
}
public int getDataid() {
return dataid;
}
public void setDataid(int dataid) {
this.dataid = dataid;
}
public String getDataname() {
return dataname;
}
public void setDataname(String dataname) {
this.dataname = dataname;
}
public int getProjectid() {
return projectid;
}
public void setProjectid(int projectid) {
this.projectid = projectid;
}
public String getProjectname() {
return projectname;
}
public void setProjectname(String projectname) {
this.projectname = projectname;
}
public int getSurveyid() {
return surveyid;
}
public void setSurveyid(int surveyid) {
this.surveyid = surveyid;
}
public String getSurveyname() {
return surveyname;
}
public void setSurveyname(String surveyname) {
this.surveyname = surveyname;
}
public String getdataFormat() {
return dataformat;
}
public void setdataFormat(String dataformat) {
this.dataformat = dataformat;
}
public String getcomments() {
return comments;
}
public void setcomments(String comments) {
this.comments = comments;
}
}
My Data Access Object is:
package com.luminajio.input.poststack;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.luminajio.jdbc.JDBC;
public class PoststackDao {
//String schema = "petrolex";
String schema = "data";
String databaseURL = JDBC.JDBCURL + schema + "?allowPublicKeyRetrieval=true&useSSL=false" ;
String DBlogin= "root";
String DBpass= "lumi123";
public List<PoststackModel> list(String Survey) throws SQLException {
List<PoststackModel> listInput = new ArrayList<>();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try (Connection connection = DriverManager.getConnection(databaseURL, DBlogin, DBpass)) {
//String sql = "SELECT * FROM data ORDER BY DataName";
String sql = "SELECT * FROM data where surveyname = '" + Survey + "' ORDER BY DataName";
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery(sql);
while (result.next()) {
String uniquedataid = result.getString("uniquedataid");
String uniquejobid = result.getString("uniquejobid");
int dataid = result.getInt("dataid");
String dataname = result.getString("dataname");
int projectid = result.getInt("projectid");
String projectname = result.getString("projectname");
int surveyid = result.getInt("surveyid");
String surveyname = result.getString("surveyname");
String dataformat = result.getString("dataformat");
String comments = result.getString("comments");
PoststackModel input = new PoststackModel(uniquedataid, uniquejobid, dataid, dataname, projectid, projectname, surveyid, surveyname, dataformat, comments);
listInput.add(input);
}
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
}
return listInput;
}
}
The servlet that calls the JSP is:
package com.luminajio.viewers;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.RequestDispatcher;
//import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.luminajio.input.poststack.PoststackDao;
import com.luminajio.input.poststack.PoststackModel;
import com.luminajio.jdbc.ConnectionFactory;
import com.luminajio.modules.Metadata;
import com.luminajio.modules.Notes;
import com.luminajio.modules.ParamOpts;
import com.luminajio.modules.Parameters;
import com.luminajio.modules.Rules;
public class Call_2DView extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String User = request.getParameter("User");
String Theme = request.getParameter("Theme");
String Survey = request.getParameter("Survey");
PoststackDao dao = new PoststackDao();
// Pass just the theme name 'darkness' rather than 'jquery-ui-darkness.css' (ThemeSubmit)
String ThemeSubmit = Theme.replace("jquery-ui-", "");
ThemeSubmit = ThemeSubmit.replace(".css", "");
try {
List<PoststackModel> listInput = dao.list(Survey);
request.setAttribute("listInput", listInput);
request.setAttribute("User",User);
request.setAttribute("Theme",Theme);
request.setAttribute("ThemeSubmit",ThemeSubmit);
request.setAttribute("Survey", Survey);
request.getRequestDispatcher("/JSP/Viewers/Viewer_2D_Tabs_8.jsp").forward(request, response);
} catch (SQLException e) {
e.printStackTrace();
throw new ServletException(e);
}
}
}
Any idea why I get an error when trying to display 'uniquedataid' in my JSP?