jsf import jsf-2 jstl xml-namespaces

JSTL xmlns diferencias de espacio de nombres entre JSF 1.2 y JSF 2.x?



import jsf-2 (2)

JSTL ahora es parte de EL.
No depende de la implementación de JSF, sino de qué versión de servlet es compatible con su contenedor de servelet.
Por lo tanto, estos deben estar ejecutando servidores diferentes o versiones diferentes del mismo servidor.

La respuesta corta es de 2.4 en adelante, que es jboss 7.
Si revisas el documento JSTL here , lo descubrirás de cualquier manera.
De otra manera aquí es un buen link .
Y otro here de BalusC.

Tengo una aplicación web basada en JSF 1.2 desde la que copié la importación JSTL

xmlns:c="http://java.sun.com/jstl/core"

También puede encontrar esta importación en muchos lugares en Internet. No puedo recordar si lo anterior funcionó en mi proyecto web anterior o no, en cualquier caso, no funciona en mi aplicación web actual basada en JSF 2.0. Recibí una advertencia del contenedor que decía:

Advertencia: esta página solicita el espacio de nombres XML http://java.sun.com/jstl/core declarado con el prefijo c, pero no existe una biblioteca de etiquetas para ese espacio de nombres.

Entonces cambié la importación a

xmlns:c="http://java.sun.com/jsp/jstl/core"

... que eliminó todos los dolores de cabeza usando <c:forEach> en una aplicación web basada en JSF / RichFaces.

¿Cuál es el truco aquí? ¿Ha habido algún cambio en la URL de importación de JSTL de JSF 1.2 a 2.x? ¿O es la línea anterior generalmente incorrecta (en JSF)? ¿Cuál es la diferencia entre los dos?


Visite nuestra página wiki de JSTL: https://.com/tags/jstl/info Puede obtener este tipo de página cada vez que pase el jstl debajo de su pregunta hasta que aparezca un recuadro negro y luego haga clic en el enlace de información .

Es cierto que Facelets 1.xy 2.x utilizan diferentes espacios de nombres para la biblioteca de etiquetas JSTL. Fue más o menos un bug espacio de nombres en Facelets 1.x y se ha corregido para Facelets 2.x.

  • El taglib JSTL 1.0 real utiliza el URI http://java.sun.com/jstl/core .
  • El taglib JSTL 1.1 / 1.2 real utiliza el URI http://java.sun.com/jsp/jstl/core .
  • Facelets 1.x utiliza el URI http://java.sun.com/jstl/core .
  • Facelets 2.x utiliza el URI http://java.sun.com/jsp/jstl/core .
  • Facelets 2.2+ utiliza el URI http://xmlns.jcp.org/jsp/jstl/core .

Puede encontrar todas las etiquetas Facelets 2.x en la documentación de la biblioteca de etiquetas de Facelets . Los facelets no se envían con el conjunto completo de etiquetas como el taglib real de JSTL . Sólo algunos de los <c:xxx> y el conjunto completo de <fn:xxx> se copian en Facelets. Las <fmt:xxx> , <sql:xxx> y <xml:xxx> no se toman en Facelets.