2014-08-27 76 views
0

参数化功能,这是我的JSP页面:无法调用使用JSTL

<!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调用一个函数,如果我调用一个非参数化函数,那么代码工作正常,但同时调用参数功能

+0

你应该处理你的编码约定。对于Java开发人员来说,这段代码很难阅读。 [这里](http://www.iwombat.com/standards/JavaStyleGuide.html)是一个简短的基础知识页面。 – nfechner 2014-08-27 12:21:46

回答

1

您需要更改的方法名称出现问题:

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

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

+0

谢谢大家,它只是工作1最后一件事情是有必要使我调用的bean函数 – AK2 2014-08-27 13:06:31