JSF1.2和JSF2.x之间的JSTLXMLNS命名空间差异?

JSF1.2和JSF2.x之间的JSTLXMLNS命名空间差异?,jsf,import,jsf-2,jstl,xml-namespaces,Jsf,Import,Jsf 2,Jstl,Xml Namespaces,我有一个基于JSF1.2的webapp,我从中复制了JSTL导入 xmlns:c="http://java.sun.com/jstl/core" 你也可以在互联网上的许多地方找到这种导入。我不记得上面的内容是否在我以前的web项目中起作用,无论如何,它在我当前基于JSF2.0的web应用程序中不起作用。我从集装箱上得到警告说: 警告:此页调用以前缀c声明的XML命名空间,但该命名空间不存在taglibrary 然后我将导入更改为 xmlns:c="http://java.sun.com/jsp

我有一个基于JSF1.2的webapp,我从中复制了JSTL导入

xmlns:c="http://java.sun.com/jstl/core"
你也可以在互联网上的许多地方找到这种导入。我不记得上面的内容是否在我以前的web项目中起作用,无论如何,它在我当前基于JSF2.0的web应用程序中不起作用。我从集装箱上得到警告说:

警告:此页调用以前缀c声明的XML命名空间,但该命名空间不存在taglibrary

然后我将导入更改为

xmlns:c="http://java.sun.com/jsp/jstl/core"
。。。在基于JSF/RichFaces的webapp中使用
消除了所有令人头疼的问题


这里有什么诀窍?JSTL导入URL是否从JSF1.2更改为2.x?或者前一行通常是错误的(在JSF中)?两者之间有什么区别?

JSTL现在是EL的一部分。
它不依赖于JSF实现,而是取决于您的servlet容器所兼容的servlet版本。
因此,它们必须在不同的服务器或同一服务器的不同版本上运行。


简短的回答是从jboss 7的2.4版本开始的。
如果您通过JSTL文档,您将找到任何方法。
这里的其他智慧是好的。
另一个来自BalusC。

检查我们的JSTL wiki页面:只要将标签悬停在问题下方,直到弹出一个黑框,然后单击信息链接,您就可以获得此类页面

Facelet1.x和2.x确实为JSTL标记库使用了不同的名称空间。它在Facelets 1.x中或多或少是一个名称空间,在Facelets 2.x中已经修复

  • 真正的JSTL 1.0标记库使用URI
    http://java.sun.com/jstl/core
  • 真正的JSTL 1.1/1.2标记库使用URI
    http://java.sun.com/jsp/jstl/core
  • Facelets 1.x使用URI
    http://java.sun.com/jstl/core
  • Facelets 2.x使用URI
    http://java.sun.com/jsp/jstl/core
  • Facelets 2.2+使用URI
    http://xmlns.jcp.org/jsp/jstl/core

您可以在中找到所有Facelets 2.x标记。Facelets不会将完整标记集作为。只有少数
和全套
被复制到facelet中。Facelets中的
标记不会被接管。

如何找出哪个服务器使用哪些名称空间?我目前使用JBoss AS 7.Facelets 2.2+名称空间URI是
http://xmlns.jcp.org/jsp/jstl/core
(只需按照BalusC所述的JSTL标记信息操作即可)