0

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?

ajkrueger
  • 13
  • 3
  • 1
    In PoststackModel , change getuniquedataId() to getUniquedataId() and change setuniquedataId(String uniquedataid) to setUniquedataId(String uniquedataid). That is the JavaBean standard. – rickz Jan 24 '22 at 23:33
  • That's it, of course. Thank you! – ajkrueger Jan 25 '22 at 16:43

0 Answers0