[Resolvido] Functions EL com params

3 respostas
GabrielCardelli

Opa Pessoal beleza?
Estou com uma duvida em implementar uma function TLD que recebe um param

Essa function é simples, recebe um nome e mostra ele no console.

Meu método:

package foo;

public class PrintName {
	
	public static String getStart(String name){
		return name;
	}

}

TLD

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2e.xsde/web-jsptagLibrary_2_0" 
version="2.0">


	<tlib-version>1.2</tlib-version>
	<uri>PrintLibrary</uri>
	<function>
	
	
		<name>printName</name>
		<function-class>
			foo.PrintName
		</function-class>
		
		<function-signature>
			java.lang.String getStart(java.lang.String)
		</function-signature>
	
	
	</function>

</taglib>

JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib prefix="p" uri="/WEB-INF/tld/PrintLibrary.tld" %>
<html>
<body>
	${p:printName(${param.name})}
</body>
</html>
org.apache.jasper.JasperException: An exception occurred processing JSP page /PrintTest.jsp at line 6

3: <%@taglib prefix="p" uri="/WEB-INF/tld/PrintLibrary.tld" %>
4: <html>
5: <body>
6: 	${p:printName((String) ${param.name})}
7: </body>
8: </html>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

javax.el.ELException: Error Parsing: ${p:printName((String) ${param.name}
	org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:125)
	org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:150)
	org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:194)
	org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:934)
	org.apache.jsp.PrintTest_jsp._jspService(PrintTest_jsp.java:69)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

org.apache.el.parser.ParseException: Encountered " <IDENTIFIER> "$ "" at line 1, column 24.
Was expecting one of:
    "." ...
    ")" ...
    "[" ...
    "," ...
    ">" ...
    "gt" ...
    "<" ...
    "lt" ...
    ">=" ...
    "ge" ...
    "<=" ...
    "le" ...
    "==" ...
    "eq" ...
    "!=" ...
    "ne" ...
    "&&" ...
    "and" ...
    "||" ...
    "or" ...
    "*" ...
    "+" ...
    "-" ...
    "/" ...
    "div" ...
    "%" ...
    "mod" ...
    
	org.apache.el.parser.ELParser.generateParseException(ELParser.java:2142)
	org.apache.el.parser.ELParser.jj_consume_token(ELParser.java:2024)
	org.apache.el.parser.ELParser.Function(ELParser.java:1207)
	org.apache.el.parser.ELParser.NonLiteral(ELParser.java:1114)
	org.apache.el.parser.ELParser.ValuePrefix(ELParser.java:1016)
	org.apache.el.parser.ELParser.Value(ELParser.java:965)
	org.apache.el.parser.ELParser.Unary(ELParser.java:947)
	org.apache.el.parser.ELParser.Multiplication(ELParser.java:711)
	org.apache.el.parser.ELParser.Math(ELParser.java:631)
	org.apache.el.parser.ELParser.Compare(ELParser.java:443)
	org.apache.el.parser.ELParser.Equality(ELParser.java:337)
	org.apache.el.parser.ELParser.And(ELParser.java:281)
	org.apache.el.parser.ELParser.Or(ELParser.java:225)
	org.apache.el.parser.ELParser.Choice(ELParser.java:182)
	org.apache.el.parser.ELParser.Expression(ELParser.java:174)
	org.apache.el.parser.ELParser.DynamicExpression(ELParser.java:146)
	org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:43)
	org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:93)
	org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:150)
	org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:194)
	org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:934)
	org.apache.jsp.PrintTest_jsp._jspService(PrintTest_jsp.java:69)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.

Obrigado desde já;

3 Respostas

rogelgarcia

${p:printName(param.name)}

GabrielCardelli

Obrigado Rogel.!

J

muito bom me ajudou tbmmm

Criado 28 de março de 2010
Ultima resposta 29 de mar. de 2010
Respostas 3
Participantes 3