java - jsp - 未正确使用 JSTL 的错误

标签 java jsp jstl

我的类conexion中有这个方法

public ArrayList<Comuna> getComunas()
{
    ConexionBd();
    try {
        comunas = new ArrayList<Comuna>();
        resultado = consulta.executeQuery("select * from comuna");
        while(resultado.next())
        {
            comunas.add(new Comuna(resultado.getInt("com_id"),resultado.getInt("pro_id"),resultado.getString("com_nombre")));
        }
        CerrarConexionBd();
    } catch (Exception e) {
        e.printStackTrace();
        // TODO: handle exception
    }
    return comunas;
}

我正在尝试将值放在这里

<c:set var="variable" value="${Conexion.getComunas}"></c:set>

并用此显示值

<select class="form-control" id="comuna" name="comuna">
                        <c:forEach var="comunas" items="${variable} " >
                            <option value="${comunas.com_id}">${comunas.com_nombre}</option>
                        </c:forEach>
                        </select>

我收到此错误javax.el.PropertyNotFoundException:类'java.lang.String'没有属性'com_id'

at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229)
    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206)
    at javax.el.BeanELResolver.property(BeanELResolver.java:317)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
    at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:183)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
    at org.apache.jsp.formulario_005fempresa_jsp._jspx_meth_c_005fforEach_005f0(formulario_005fempresa_jsp.java:157)
    at org.apache.jsp.formulario_005fempresa_jsp.access$1(formulario_005fempresa_jsp.java:138)
    at org.apache.jsp.formulario_005fempresa_jsp$Helper.invoke1(formulario_005fempresa_jsp.java:230)
    at org.apache.jsp.formulario_005fempresa_jsp$Helper.invoke(formulario_005fempresa_jsp.java:307)
    at org.apache.jsp.tag.webplantillaformulario_tag.doTag(webplantillaformulario_tag.java:130)
    at org.apache.jsp.formulario_005fempresa_jsp._jspx_meth_t_005fplantillaformulario_005f0(formulario_005fempresa_jsp.java:112)
    at org.apache.jsp.formulario_005fempresa_jsp._jspService(formulario_005fempresa_jsp.java:85)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)`

这是我的类(class)Comuna

public class Comuna {
int com_id;
int pro_id;
String com_nombre;
public Comuna(int com_id, int pro_id, String com_nombre) {
    super();
    this.com_id = com_id;
    this.pro_id = pro_id;
    this.com_nombre = com_nombre;
}
public Comuna(){

}
public int getCom_id() {
    return com_id;
}
public void setCom_id(int com_id) {
    this.com_id = com_id;
}
public int getPro_id() {
    return pro_id;
}
public void setPro_id(int pro_id) {
    this.pro_id = pro_id;
}
public String getCom_nombre() {
    return com_nombre;
}
public void setCom_nombre(String com_nombre) {
    this.com_nombre = com_nombre;
}

}

我认为这个错误与数据类型有关,但我无法解决,因为因为 我刚刚学习,谢谢

最佳答案

I get this error javax.el.PropertyNotFoundException:The class java.lang.String does not have the property com_id

问题出在下面一行,${variable} 之后错误地添加了一个空格,这就是它被覆盖到 Stringcomunas 变为 String 类型,并且 String 没有任何属性 com_id

<c:forEach var="comunas" items="${variable} " >

只需删除多余的结尾空格即可解决您的问题。


Conexion 访问 Comunas 时,以下行可能还会出现一个问题。

<c:set var="variable" value="${Conexion.getComunas}"></c:set>

应该是

<c:set var="variable" value="${Conexion.getComunas()}"></c:set>

或者

<c:set var="variable" value="${Conexion.comunas}"></c:set>

或者

<c:set var="variable" value="${Conexion['comunas']}"></c:set>

关于java - jsp - 未正确使用 JSTL 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073693/

相关文章:

java - 如何在调用函数时使用javascript中的scriptlet在控制台中打印值

jsp:forward 标签不改变 URL

java - Form Action属性错误struts2

java - JSP - 保存集合

java - 评估列表是否为空 JSTL

javascript - 如何在 javascript 中设置 JSTL 变量值?

java - 使用外部循环处理异常

java - 为什么使用 Arrays.fill 与手动创建列表时得到不同的结果?

java - 单击弹出 Java Selenium Webdriver 的按钮

java - 如何使用真正的 Floating Action Button (FAB) Extended?