【问题标题】:Unable to call a parameterized function using JSTL无法使用 JSTL 调用参数化函数
【发布时间】:2014-08-27 12:15:03
【问题描述】:

这是我的 JSP 页面:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
 </head>
 <body>
   <jsp:useBean id="x" class="beans.JSTL_demo_class">
       <jsp:setProperty name="x" property="b" value="PRASHANT"/>
    </jsp:useBean>

     <%
   session.setAttribute("shp_prdct", x);
   %>
 <c:set var="asd" value="John"></c:set>
 <c:forEach items="${sessionScope.shp_prdct.name(asd)}" var="product"> 
    The name is  ${product.b}
 </c:forEach> 
    name is ${asd}
  </body>
 </html>

这是我的 Java 类:

package beans;

import java.util.List;


    public class JSTL_demo_class {


    public int a;
    public String b;
    public String c;
    public int d;
    public String e;

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
        System.out.println("The parameter is "+this.b);
    }

    public String getC() {
        return c;
    }

    public void setC(String c) {
        this.c = c;
    }

    public int getD() {
        return d;
    }

    public void setD(int d) {
        this.d = d;
    }

    public String getE() {
        return e;
    }

    public void setE(String e) {
        this.e = e;
    }


    public List getname(String name1)
    {
        java.util.ArrayList al=new java.util.ArrayList();
        JSTL_demo_class d=new JSTL_demo_class();
        d.setB(name1);
        al.add(d);
        return al;
     }
      }

我面临的错误是:

exception

org.apache.jasper.JasperException: javax.el.MethodNotFoundException: Method name not found
root cause

javax.el.MethodNotFoundException: Method name not found

我不知道我在这里做错了什么。我试图通过 JSTL 调用一个函数,如果我调用一个未参数化的函数,那么代码可以正常工作,但是在调用参数化函数时会出现问题

【问题讨论】:

  • 您应该遵循您的编码约定。 Java 开发人员很难阅读这段代码。 Here 是一个包含基础知识的简短页面。

标签: java jsp jstl el


【解决方案1】:

您需要更改方法名称:

<c:forEach items="${sessionScope.shp_prdct.getname(asd)}" var="product"> 
    The name is  ${product.b}
</c:forEach>

如果调用带参数的方法,需要使用完整的方法名。

【讨论】:

  • 谢谢伙计,它只工作了最后一件事是有必要制作我在 bean 中调用的函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
相关资源
最近更新 更多