1 year ago

#74129

test-img

Luciano Junior

I cannot access tablib attribute into java code

I am writing JSP page to request 'guest book' report and I have a country list to display at combobox html tag, as shown below:

<select id="from" name="from" style="width: 120px; height:30px; padding:0">
                            <option value="">Selecione</option>
                        <jsp:useBean id="estados" scope="page" class="system.web.beans.EstadoListBean"/>
                        <c:forEach items="${estados.getArrayList}" varStatus="list" var="est">
                            <%
                                String temp = (String)pageContext.getAttribute("est");
                                String value[] = temp.split(";");
                                out.print("<option value='");
                                out.print(value[1]);
                                out.print("'>");
                                out.print(value[0]);
                                out.print("</option>");
                            %>
                        </select>
                        </c:forEach>

When I will test at my localhost tomcat 9.0, I get this error:

Type Exception Report

Message An exception occurred processing [/guestbook.jsp] at line [31]

Description The server encountered an unexpected condition that prevented it from     fulfilling the request.

Exception

org.apache.jasper.JasperException: An exception occurred processing [/guestbook.jsp] at line [31]

28:                             <select id="from" name="from" style="width: 120px; height:30px; padding:0">
29:                                 <option value="">Selecione</option>
30:                             <jsp:useBean id="estados" scope="page" class="system.web.beans.EstadoListBean"/>
31:                             <c:forEach items="${estados.getArrayList}" varStatus="list" var="est">
32:                                 <%
33:                                     String temp = (String)pageContext.getAttribute("est");
34:                                     String value[] = temp.split(";");


Stacktrace:
        org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Root Cause

org.apache.jasper.el.JspPropertyNotFoundException: /guestbook.jsp(31,28) '${estados.getArrayList}' Property [getArrayList] not found on type     [system.web.beans.EstadoListBean]
    org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:136)
    org.apache.jsp.guestbook_jsp._jspService(guestbook_jsp.java:171)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

At my class EstadoListBean.java is here:

package system.web.beans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author oliveira
 */
public class EstadoListBean implements Serializable{
    private String list [] = {    "São Paulo"
    ,"Rio de Janeiro"
    ,"Amazonas"
    ,"Alagoas"
    ,"Amapá"
    ,"Bahía"
    ,"Brasília"
    ,"Ceará"
    ,"Espírito Santo"
    ,"Goiás"
    ,"Maranhão"
    ,"Mato Grosso"
    ,"Mato Grosso do Sul"
    ,"Minas Gerais"
    ,"Pará"
    ,"Paraíba"
    ,"Paraná"
    ,"Pernambuco"
    ,"Piauí"
    ,"Rio Grande do Norte"
    ,"Rio Grande do Sul"
    ,"Roraima"
    ,"Rondônia"
    ,"Santa Catarina"
    ,"Tocamtins"};
    
    private String abrev[] = {
    "SP",
    "RJ",
    "AM",
    "AL",
    "AP",
    "BH",
    "BSB",
    "CE",
    "ES",
    "GO",
    "MA",
    "MT",
    "MS",
    "MG",
    "PA",
    "PB",
    "PN",
    "PE",
    "PI",
    "RN",
    "RS",
    "RR",
    "RO",
    "SC",
    "TO"};

    public EstadoListBean () {
        
    }
    /**
     * @return the list
     */
    public String[] getList() {
        return list;
    }

    /**
     * @param list the list to set
     */
    public void setList(String[] list) {
        this.list = list;
    }

    /**
     * @return the abrev
     */
    public String[] getAbrev() {
        return abrev;
    }

    /**
     * @param abrev the abrev to set
     */
    public void setAbrev(String[] abrev) {
        this.abrev = abrev;
    }

    public int size() {
        return this.list.length;
    }
    
    public String getByIndex (int idx) {
        return this.list[idx];
    }
    
    public String getSiglaByIndex (int idx) {
        return this.abrev[idx];
    }
    
    public List getArrayList() {
        ArrayList <String>ret = new ArrayList<>();
        
        for (int idx = 0; idx < list.length; idx++) {
            String str = list[idx] + ";" + abrev[idx];
            ret.add(str);
        }
        return ret;
    }
}

I using Apache Tomcat 9.0 JSTL 1.2.6

So, I don't understand what happens !??

java

jsp

arraylist

taglib

0 Answers

Your Answer

Accepted video resources