${} Não esta funcionando

Olá pessoal,

Não sei porque isso não esta funcionando ?
acredito que deve ser algum problema de versão

pagina: teste.jsp


<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> 

<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title></title>
</head>
<body>
 Listagem de Usuarios Registrados
<c:forEach var="usuario" items="${usuarios}">
   <br>
    ${usuario.nome}
&lt;/c:forEach&gt;

&lt;/body&gt;
&lt;/html&gt;

saindo na pagina de resposta exatamente ${usuario.nome}, como se não fosse uma tag e sim um texto simples.

mas Quando eu utilizo Assim funciona:


&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt; 

&lt;%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %&gt;

&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
 Listagem de Usuarios Registrados
&lt;c:forEach var="usuario" items="${usuarios}"&gt;
   <br>
   &lt;c:out value="${usuario.nome}"/&gt; 
&lt;/c:forEach&gt;
&lt;/body&gt;
&lt;/html&gt;

Minha dúvida é a seguinte, qual a diferença entre as duas taglib:


&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt; 

&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; 

Gostaria de saber se ocorreu alguma mudança pois usando

 &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; 

eu consigo usar ${usuario.nome}

mas usando

 &lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt; 

${usuario.nome} ja não funciona mais [size=9][/size][size=12][/size]

Coloque essa linha no seus jsps:

<%@page isELIgnored="false"%>

Verifique a versão da JSTL utilizada.
Caso utilize a versão 1.0, a URI para a biblioteca core é http://java.sun.com/jstl/core.
Caso utilize a 1.1, a URI é http://java.sun.com/jsp/jstl/core

[]´s
Carlos

 <%@page isELIgnored="false"%>

Não é preciso isso não, por padrão, a EL já vem habilitada.

Nos containers mais atuais que suportam servlet 2.4, no caso dele por que então não funciona?, estava tendo um problema semelhante e aqui funcionou essa linha, pode estar relacionado também ao web.xml lá é informada a versão da servlet, ou falei besteira?

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4">

Amigo, o problema dele não é com EL, o problema é com a tag core. a diretiva

<%@page isELIgnored="false"%> habilita o uso da EL, n tem nada a ver com tag’s.

Isso e uma loucura, estava tudo funcionando agora pouco ai eu resolvi
setar no web.xml para usar a versão 2.4 com a linha

 &lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"&gt; 

porque eu estava usando anteriormente a versão 2.3…

Isso resolveu o problema dos ${nome.cliente}, porem
agora o codigo que estava funcionando que era

 &lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt; 
 
 &lt;%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %&gt;
 
 &lt;html&gt;
 &lt;head&gt;
 &lt;meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/&gt;
 &lt;title&gt;&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
  Listagem de Usuarios Registrados
 &lt;c:forEach var="usuario" items="${usuarios}"&gt;
    <br>
    &lt;c:out value="${usuario.nome}"/&gt; 
 &lt;/c:forEach&gt;
 &lt;/body&gt;
 &lt;/html&gt;

me reporta a seguinte mensagem de ERRO
e tambem nao funciona se eu trocar o

    &lt;c:out value="${usuario.nome}"/&gt; 

     para 

    ${usuario.nome}

[list]
org.apache.jasper.JasperException: /listaUsuarios.jsp(16,0) According to TLD or attribute directive in tag file, attribute items does not accept any expressions
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)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:99)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:82)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:51)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
[/list]

e quando eu mudo a taglib para a versão 1.1

 &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; 

ele reporta que nao encontrou as tags

[list]
javax.servlet.ServletException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
[/list]

Bom, resumindo em que lugar eu defino que eu vou usar o versão 1.1 do jsp ?

Mais uma coisa, verifiquei o retorno do request usuarios e os objetos estão lá.

Meu tomcat é : tomcat-5.5.17 e jdk1.5.0_07

Como esta seu web.xml?, poste aqui.

Esta assim

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

 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"> 
  <display-name>Teste com o Strutus 1.35</display-name>
  
  <!-- Standard Action Servlet Configuration -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

</web-app>

Um detalhe, é necessario colocar algum arquivo .jar no diretorio lib da aplicação ?

Valeu

consegui resolver o problema,

Dando uma vasculhada no diretorio lib da aplicação encontrei os arquivos
starndar.jar e jstl.jar

Então fui ate o projeto jakarta em


http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html

e baixei a tag lib 1.1, ai foi so colocar na pasta lib e sorrir… :smiley:

Bom so mais uma coisa… .

Eu estou usando o eclipse para desenvolver e mesmo colocando a taglib o eclipse continua marcando com erro as tags por exemplo a <c:forEach>


&lt;c:forEach&gt;

Isso tambem ocorre para as tags do Struts

&lt;%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %&gt;
&lt;bean:message key="pagina.titulo"/&gt;

É como se ele não encontra-se as tags
[list]
taglib directive for “bean” does not exist or TLD is not found.
[/list]

O detalhe é que o servidor Tomcat não esta rodando na minha máquina e sim em um servidor remoto de desenvolvimento…

O que poderia ser feito para retirar esses erros do eclipse ?

Valeu de novo

Aqui estou usando o JBOSSIDE uma excelente ferramenta para desenvolvimento web, da suporte a jstl tem editor de html bakana e javascript de uma olhada.

http://prdownloads.sourceforge.net/jboss/JBossIDE-2.0.0.Beta1-ALL.zip?download

Eu tambem encontei esses erros no eclipse. Agradeceria muito se alguem pudesse ajudar

Também estou com o mesmo problema no eclipse…

Alguém tem a solução?

vamos lá pessoal…

[quote=JPinhead]Também estou com o mesmo problema no eclipse…

Alguém tem a solução?

vamos lá pessoal…[/quote]
Já tentou resolver isso configurando proxy para acessar a internet no eclipse? (se vc usa um é claro)

valeu, mas não uso proxy…

alguém mais?

Nossa eu tinha levantado o problema do eclipse não encontrar as tag lib e agora encontrei a solução… :slight_smile:

No meu caso eu estou usando o plugin Amateras para escrever minhas paginas em jsp, para que ele reconheca as tags, eu precisei ir em
Windows --&gt Preferences --&gt Amateras --&gt DTD / XML Schema, e adicionar a URI e o arquivo dtd indicando o local onde ele estava.

a partir dai o eclipse passou a reconhecer as tags numa boa inclusive permitindo montando a tela de sugestões.

Bom é isso espero que tenha ajudado…

Valeu

T+