【问题标题】:What are the namespaces for "h", "f", ... in a JSF page for Jakarta EE 9?Jakarta EE 9 的 JSF 页面中“h”、“f”、...的命名空间是什么?
【发布时间】:2021-09-27 00:13:40
【问题描述】:

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

【问题讨论】:

    标签: jsf jakarta-ee


    【解决方案1】:

    xmlns:h="jakarta.faces.html" 用于即将推出的 Faces 4.0,它是 Jakarta EE 10 的一部分。

    在 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 你仍然可以使用jakarta.faces.* 旁边的http://java.sun.com/jsf/*http://xmlns.jcp.org/jsf/* URI。但显然不建议这样做,因为对旧 URI 的支持仍可能在未来某个时候被删除,并且在较新的 URI 中首次引入的任何新组件/标签不一定可通过较旧的 URI 获得。

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

    另见:

    【讨论】:

    • 感谢 BalusC 的详细解答。
    猜你喜欢
    • 2021-11-25
    • 1970-01-01
    • 2021-07-23
    • 2021-04-14
    • 2020-10-27
    • 2023-02-12
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多