Expression Language

Bom dia a todos,

Estou estudando EL e implementei um exemplo mas quando executo da o seguinte erro:

org.apache.jasper.JasperException: File "/StringFunctions" not found
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	com.example.web.ServletExpression.doPost(ServletExpression.java:22)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Meu código:

Classe Java

package com.example.model;

public class UtilString {
	
	public String reverseUpString(String text) {
		return text.toUpperCase();
	}

}

Arquivo tdl

<?xml version="1.0" encoding-"ISO-8859-1" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sin.com/xml/ns/j2ee/web-jsptaglibrary_2.0.xsd" version="2.0">

<tlib-version>1.2</tlib-version>
<uri>StringFunctions</uri>
  <function>
        <name>uper</name>
        <function-class>com.example.model.UtilString</function-class>
        <function-signature>
                String reverseUpString(String text)
        </function-signature>
   </function>
</taglib>

Meu JSP

<%@ taglib prefix="fc" uri="StringFunctions"%>

<html>
 <body>
 <h1 align="center"> Using EL Example</h1>
  
 ${fc:uper(${param["name"]})}

</body>
</hmtl>

Alguém poderia de dar uma luz?

Obrigado

e ae!
olhei o codigo po cima!
acho que o erro esta aqui

&lt;function-signature&gt; java.lang.String reverseUpString(java.lang.String text) &lt;/function-signature&gt;
e aqui tambem

[code]package com.example.model;

public class UtilString {

public static String reverseUpString(String text) {
	return text.toUpperCase();
}

}[/code]

o metodo tem que ser static!
qualquer coisa posta ae!
t+ 8)

Obrigado pela ajuda quebrado, foi falta de atenção mesmo, mas o erro ainda ocorre, parece que o arquivo tdl não está sendo encontrado, ele coloquei ele dentro do diretório WEB-INF/ da minha app.

Obrigado

Olá,

Tente colocar algo parecido com isso no seu web.xml pra ver se ajuda.

&lt;taglib&gt;
    &lt;taglib-uri&gt;StringFunctions&lt;/taglib-uri&gt;
    &lt;taglib-location&gt;/WEB-INF/StringFunctions.tld&lt;/taglib-location&gt;
&lt;/taglib&gt;

[]´s
Rodrigo

outra coisa nandobgi
a assinatura certa é assim.

&lt;function-signature&gt;
                  java.lang.String reverseUpString(java.lang.String)
          &lt;/function-signature&gt;

verifica se salvou com o .tld, as vezes ta assim xxx.tld.txt ae nao vai funcionar mesmo.
t+ 8)

Qual a versão de servlets que você está usando? Onde você está colocando o arquivo .tld?

Obrigado pessoal pelas dicas, o problema estava na extensão do arquivo, estava tdl ao invés de tld :oops:

Mas agora ocorre outro erro:

org.apache.jasper.JasperException: The class java.lang.String text specified in the method signature in TLD for the function fc:uper cannot be found. java.lang.String text
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

Os trechos de códigos acima continuam o mesmo, parece que a parametro da function não está sendo passada

Obrigado a todos

é só você tirar o text e fica assim:

&lt;function-signature&gt; java.lang.String reverseUpString(java.lang.String) &lt;/function-signature&gt;

Guerr@ obrigado pela ajuda e obrigado a todos, funcionou certinho

[ ]'s

Muito Obrigado!!! estava tendo o mesmo problema !!!

Segue o meu tld como exemplo

[

<?xml version="1.0" encoding="UTF-8" ?>
<description>Meio &amp; Mensagem 1.0 functions library</description>

Meio & Mensagem JSTL functions
1.0
fnmm
http://www.mmonline.com.br

Retorna o texto com o Html Escape htmlEscape org.springframework.web.util.HtmlUtils java.lang.String htmlEscape(java.lang.String) <c:if test="${fnmm:htmlEscape(htmlText)}"> ]

Aqui eu estava precisando de uma função para retornar o texto formato em html para não desformatar o layout da tela em um include.