“h”、“f”、...在 Jakarta EE 9 的 JSF 页面中?

What are the namespaces for "h", "f", ... in a JSF page for Jakarta EE 9?

提问人:user1643352 提问时间:7/19/2021 更新时间:2/6/2023 访问量:2850

问:

我尝试了 、 和其他类似的字符串,但似乎没有任何效果。xmlns:h="jakarta.faces.html"xmlns:h="http://jakarta.faces.html"xmlns:h="https://jakarta.faces.html"

JSF 雅加达-EE

评论


答:

13赞 BalusC 7/19/2021 #1

它是在 Jakarta EE 10 的 Faces 4.0 中引入的。xmlns:h="jakarta.faces.html"

在 JSF 3.0(Jakarta EE 9 的一部分)中,它仍然是 .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/*
  • Jakarta EE 8 / JSF 2.3: 和javax.faces.*http://xmlns.jcp.org/jsf/*
  • Jakarta EE 9 / JSF 3.0:和jakarta.faces.*http://xmlns.jcp.org/jsf/*
  • Jakarta EE 10 / Faces 4.0:和jakarta.faces.*jakarta.faces.*

请注意,XML 命名空间 URI 在每个较新版本中都向后兼容。因此,在 Faces 4.0 中,您仍然可以使用 旁边的 和 URI。但显然不建议这样做,因为对旧 URI 的支持仍然容易在未来某个时候被删除,并且在较新的 URI 中首次引入的任何新组件/标记不一定通过较旧的 URI 提供。http://java.sun.com/jsf/*http://xmlns.jcp.org/jsf/*jakarta.faces.*

Faces 4.0 是第一个使用 URN 而不是 URL 作为 XML 命名空间 URI 的版本。所以带前缀的URL表单是无效的。使用 URN 而不是 URL 的原因是,这些 taglib URI 首先不能作为返回某种 XSD 文件的物理 Web 资源使用,因此在初学者中引起了混淆。此外,URN 更面向未来,因为您不一定需要包含主机名,例如 或 或 与 API 名称相比,它对名称/所有者的更改更敏感。http(s)://java.sun.comxmlns.jcp.org

另请参阅:

评论

1赞 user1643352 7/19/2021
感谢 BalusC 的详细回答。