Jakarta EE 9 的 JSF 页面中 "h"、"f"、... 的命名空间是什么?

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

我尝试了 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,它是 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 中首次引入的任何新 components/tags 不一定可以通过旧 URI 获得。

Faces 4.0 是第一个使用 URN 而不是 URL 作为 XML 命名空间 URI 的版本。所以带有 http(s):// 前缀的 URL 形式是无效的。使用 URN 而不是 URL 的原因是因为这些 taglib URI 首先不能作为返回某种 XSD 文件的物理网络资源使用,因此在初学者中造成混淆。此外,URN 更具前瞻性,因为您不一定需要包含主机名,例如 java.sun.comxmlns.jcp.org,它们对 name/owner 的变化比 API 更敏感] 名字.

另请参阅: