JSTL - De novo

Pessoal,

Estou tentando utilizar JSTL em um projeto que estou fazendo com struts…

Tive alguns problemas até que decidi acessar a página de taglibs do jakarta e baixar os fontes de lá para ter certeza que os .jar que me passaram não estavam zicados ou algo assim…

Baixei o zip e coloquei no lib do meu projeto os arquivos jstl.jar e standard.jar

No meu WEB-INF ficam os tld’s:
c.tld
c-rt.tld
struts-logic.tld
struts-html.tld
.
.
.

Mas ainda assim o comando abaixo não funciona:

<c:out value="${listarUsuariosForm.status.allowInsertOperation}"/>

já tentei tb

<c:out value="${sessionScope.listarUsuariosForm.status.allowInsertOperation}"/>

e consequentemente(como isso é só um teste) o comando abaixo tb não funciona:

<c:if test=’${sessionScope.listarUsuariosForm.status.allowInsertOperation ==“1”}’>

Já tentei sem sessionScope, aspas simples, duplas, o escambal. E nada.

No caso do c:out ele escreve a expressão página ao invés de resolvê-la e mostrar o resultado.

Já me perguntaram em outro post se allowInsertOperation é do boolean. Não é. É String.

Alguém sabe o que pode estar acontecendo?

Outra coisa: Tem um struts-el.jar no meu lib. Eu realmente preciso dele ou apenas do standard.jar e do jstl.jar?

Obrigado.

Olá

Seu post anterior igual a este teve 41 visualizações e poucas respostas. Você não precisava abrir um outro igual. Poderia apenas dar sequência ao outro.

Quanto à suas dúvida pergunto se nenhum dos links que te enviei fala alguma coisa sobre isto?

[]s
Luca

  1. coloque a ultima versao da jstl e standar.jar no seu projeto, baixe no site do jakarta
  2. com essa versao voce nao precisa definir nada no seu web.xml
  3. va passo a passo:
    a) tente somente <c:out value="${listarUsuariosForm}"/>
    b) tente um pouco mais
    c) mais um pouco

E tente de pouco em pouco, assim voce acha o seu erro

Att

Guilherme Silveira

Como vc esta declarando as tglibs em seu jsp ???
Posta a pagina jsp!..se não for mto grande né!!!

Pelos links consegui entender melhor o que é jstl…

Foi daí que cheguei na página do jakarta e tal…

Mas pelo que li estou fazendo tudo certo. Já li os exemplos que vêm junto…

Declaro a taglib assim:

<%@ taglib uri="/tags/struts-c" prefix=“c” %>

uso assim:

				<c:out value="${listarUsuariosForm.status.allowInsertOperation}"/>
				<c:if test='${sessionScope.listarUsuariosForm.status.allowInsertOperation =="1"}'>

e no web.xml coloquei isso:

/tags/struts-c /WEB-INF/c.tld

sugestao: abandona o struts-taglibs e passa por jstl

Como assim? O jstl não é uma spec? E o struts taglib é uma implementação da spec, certo?

Qual jstl vc está dizendo para eu usar? Tem outro lugar onde posso fazer download? Por mim, sem problemas. Quero fazer esse troço rodar.

Valeu.

Sim claro, a jstl eh uma especificacao, pela minha experiencia com JSTL, so baixo a implementacao no grupo jakarta diretamente para nao haver problemas, versao 1.1.2.

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

Att

Guilherme Silveira

Guilherme, acessei o site que vc me passou e cliquei em um link que levava para “Apache Jakarta Project Mirrors”.

Nesta outra pg tem duas seções: Release builds e Nightly Builds.

E dentro de cada seção tem vários tópicos, mas nada de jstl. Qual eu devo baixar? O único “familiar” que vi foi Tablibs, mas este eu já entrei hoje… E baixei o conteúdo da pasta standard-1.0.

É isso? Se não for me explique melhor. Valeu.

http://ftp.pucpr.br/apache/jakarta/taglibs/standard/binaries/

Escolhe a 1.1.2

Cara, peguei a jstl 1.2 e nada…

Pelos testes que fiz descobri que ela tá sendo chamada, pq coloquei um c:if test=“true” e imprimiu o boby…

Mas ele não consegue acessar meu obj nem por reza!! Estava pensando se não pode ser um problema de cast, já que um objeto que volta da sessão volta como object. Será?

usando jstl vc nao precisa se preocupar com casts.

eh melhor voce postar algumas coisas a mais do seu teste pq senao fica muito na ‘adivinhacao’

Experimente colocar:

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

Ao invés de:

<%@ taglib uri="/tags/struts-c" prefix="c" %>

Outra coisa, para usar ${xxx} Você tem que usar um servidor que suporte a especificação 1.4 do J2EE (Tomcat 5 p.e.). E no seu web.xml, no cabeçalho deve ter:

<?xml version="1.0" encoding="ISO-8859-1"?> <web-app 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/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
Usando o J2EE 1.4 você não precisa mais dos arquivos .tld, só do standard.jar e do jstl.jar.
Mais uma coisa, Struts e JSTL são separados. O Struts tem as taglibs dele e o JSTL tem as deles. <c:out> faz parte das taglins do JSTL não do Struts.

Cara, vou checar quanto as informações do cabeçalho do meu web.xml.

Outra coisa: Estou utilizando o jboss 3.2.5. Alguém sabe qual tomcat vem nele? Talvez o tomcat dele não seja compatível com jstl…é uma hipótese.

Valeu

O seu problema não é o JSTL se o <c:if> está funcionando. O seu problema é com a EL ou Expression Language, esse é o nome do recurso ${objeto.propriedade} que você está usando. Ele só foi adicionado ao J2EE a a partir da especificação 1.4.

E o JBoss 3 não é compatível com a 1.4, somente a partir da versão 4.

Olhando no site do JBoss, diz que a versão 3.2.6 contém o Tomcat 5.0.28, então só testando mesmo.

Cara, mais uma vez obrigado. Neste fim de semana vou fazer o download e ler os manuais…

Obrigado mesmo. Minha “criatividade” para buscar o erro já tinha se esgotado…

Valeu.

Cara tipo tava vendo o problema realmente é na EL por que as tags estão funcionando como já foi dito. So estou lembrando que tem dois tipos de tag libs uma que suporta a EL e outro que não suporta saca.
É a mesma tagLib so que não suporta EL da uma olhada nisso também se você não esta importando a jstl errada.

heheheheheheheheheh espero ter ajudado ae falow

Pessoal, consegui resolver meu problema

Precisei modificar(conforme dicas do pessoal) o cabeçalho do meu arquivo web.xml.

o início do arquivo ficou assim:

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

<web-app 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/j2ee web-app_2_4.xsd”
version=“2.4”>

…E tudo está funcionando ok agora. Qto ao ambiente eu continuei com jboss 3.2.5 e levo no meu lib os arquivos struts-el.jar, jstl.jar e standard.jar.

Se alguém dia alguém bater cabeça igual a mim, fica a dica.

Abraço e obrigado a todos