我有一个基于JSF 1.2的webapp,从中复制了JSTL导入
xmlns:c="http://java.sun.com/jstl/core"
您也可以在Internet上的许多地方找到此导入。我不记得上面的内容在我以前的Web项目中是否起作用,无论如何,在我当前的基于JSF 2.0的Webapp中它都不起作用。我从容器收到警告说:
然后,我将导入更改为
xmlns:c="http://java.sun.com/jsp/jstl/core"
...这在基于JSF / RichFaces的Web应用程序中使用
<c:forEach>
消除了所有头痛。这有什么窍门?从JSF 1.2到2.x的JSTL导入URL进行了任何更改吗?还是前一行通常是错误的(在JSF中)?两者有什么区别?
最佳答案
检查我们的JSTL Wiki页面:https://stackoverflow.com/tags/jstl/info只要将鼠标悬停在问题下方的jstl标签上,直到 pop 黑框,然后单击信息链接,您都可以获取此类页面。
的确,Facelets 1.x和2.x为JSTL标签库使用不同的 namespace 。在Facelets 1.x中,它或多或少是一个命名空间bug,并已在Facelets 2.x中修复。
http://java.sun.com/jstl/core
。 http://java.sun.com/jsp/jstl/core
。 http://java.sun.com/jstl/core
。 http://java.sun.com/jsp/jstl/core
。 http://xmlns.jcp.org/jsp/jstl/core
。 您可以在Facelets tag library documentation中找到所有Facelets 2.x标签。 Facelets并未将完整标签设置为real JSTL taglib。只有少数
<c:xxx>
和整个<fn:xxx>
被复制到Facelets中。 facet中不会接管<fmt:xxx>
,<sql:xxx>
和<xml:xxx>
标签。关于jsf - JSF 1.2和JSF 2.x之间的JSTL xmlns namespace 差异?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7593603/