我尝试了xmlns:h="jakarta.faces.html"
、xmlns:h="http://jakarta.faces.html"
、xmlns:h="https://jakarta.faces.html"
和其他类似的字符串,但似乎都不起作用。
xmlns:h="jakarta.faces.html"
是在Faces 4.0中引入的,它是雅加达EE 10的一部分。
在JSF3.0中,雅加达EE9的一部分,它仍然是xmlns:h="http://xmlns.jcp.org/jsf/html"
。
API包和要使用的XML命名空间URI摘要:
- J2EE 1.4/JSF 1.0-1.1:
javax.faces.*
和http://java.sun.com/jsf/*
- Java EE 5/JSF 1.2:
javax.faces.*
和http://java.sun.com/jsf/*
- Java EE 6/JSF 2.0-2.1:
javax.faces.*
和http://java.sun.com/jsf/*
- Java EE 7/JSF 2.2:
javax.faces.*
和http://xmlns.jcp.org/jsf/*
- Java EE 8/JSF 2.3:
javax.faces.*
和http://xmlns.jcp.org/jsf/*
- 雅加达EE 8/JSF 2.3:
javax.faces.*
和http://xmlns.jcp.org/jsf/*
- 雅加达EE 9/JSF 3.0:
jakarta.faces.*
和http://xmlns.jcp.org/jsf/*
- 雅加达EE 10/Faces 4.0:
jakarta.faces.*
和jakarta.faces.*
需要注意的是,XML命名空间URI在每个新版本中都是向后兼容的。因此,在例如Faces 4.0中,您仍然可以使用jakarta.faces.*
旁边的http://java.sun.com/jsf/*
和http://xmlns.jcp.org/jsf/*
URI。但显然不建议这样做,因为对旧URI的支持在未来的某个时候仍然容易被删除,并且在新URI中首次引入的任何新组件/标签都不一定可以通过旧URI获得。
Faces4.0是第一个使用URN而不是URL作为XML命名空间URI的版本。因此,前缀为http(s)://
的URL表单无效。使用URN而不是URL的原因是,这些标签库URI首先不能作为返回某种XSD文件的物理web资源使用,因此在初学者中造成了混乱。此外,URNs更适合未来使用,因为您不必包含像java.sun.com
或xmlns.jcp.org
这样的主机名,这些主机名比API名称对名称/所有者的更改更敏感。
另请参阅:
- Faces 4.0:重命名xmlns.jcp.org标签库URI
- 哪个XML命名空间与JSF 2.2及更高版本一起使用
- JSF返回带有纯/原始XHTML/XML/EL源代码的空白/未解析页面,而不是呈现的HTML输出