amigos
qual é a diferença entre <s:if test=""></s:if> e <c:if test=""></c:if> ?
amigos
qual é a diferença entre <s:if test=""></s:if> e <c:if test=""></c:if> ?
É uma boa prática usar o c como prefixo para ações padrões, isso facilita identificar a ação padrão, manutenção e aproveita a experiência de outros desenvolvedores, mas você pode usar qualquer prefixo.
Procure sempre usar os padrões e as recomendações da Sun.
Complementando um pouco mais a resposta que já encontra-se bastante completa do nosso amigo Alberes…
Não há diferenca nenhuma!
Aí vc pode utilizar-se do prefixo que vc preferir…
<xuxa:if test="">…</xuxa:if>
(Claro que ninguém imaginará usar esta bizarrice um dia…)
hehehe
Como dito por nosso companheiro anteriormente, procure os padrões e as recomendações da Sun…
Desculpem, amigos…
Minha pergunta foi mal formulada.
Eu quis perguntar qual é a diferença entre usar o if da taglib do Struts(S) e o if da Taglib do JSTL©.
Nesse sentido, eu sei que há diferença, pq as vezes uso um e dá errado. Quando mudo pro outro, dá certo…
Enfim…
Abraços.
A JSTL é uma especificação padrão suportado por vários containers.
As tags do struts você tem que ter os jars do struts e caso você não use o framework no seu projeto seria algo estranho usar essas tags, sendo que existe a JSTL que é específico para isso.
Até aí tudo bem.
No meu projeto, uso tanto o JSTL qndo o Struts2.
Entao no meu JSP eu tenho as duas tags pra usar… o IF do Struts e o IF do JSTL.
Mas eu não sei quando devo usar um e quando devo usar outro, pois já vi que existe difenreça…
Se as duas tem as mesmas finalidades eu do preferência para JSTL, pois a mesma é independente, se você mudar de framework não terá que alterar os jsps, só colocar o jar da JSTL no lib.
O problema é que tem coisas que não funciona com o if do Struts e só funciona com o do JSTL.
É justamente essa diferença que eu queria conhecer…
Já usei JSTL e struts 1.3 e as dus funcionaram bem, dá um exemplo.
Sim…
As duas funcionam… Mas em determinados casos, so tem como usar um deles…
Por exemplo…
Eu tenho um objeto que é um paciente e ele tem uma propriedade booleana que indica se ele está vivo ou morto.
No JSP, eu quero que, se ele estiver vivo, imprima “Sim”. Caso contrário, “Não”.
Se eu colocar
<s:if test="${paciente.vivo == true}">
<c:out value="Sim"/>
</s:if>
Isso não funcionou. Tive que mudar para o JSTL para funcionar.