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.com
或 xmlns.jcp.org
,它们对 name/owner 的变化比 API 更敏感] 名字.
另请参阅:
- Faces 4.0: rename xmlns.jcp.org taglib URIs
- JSF returns blank/unparsed page with plain/raw XHTML/XML/EL source instead of rendered HTML output
我尝试了 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.com
或 xmlns.jcp.org
,它们对 name/owner 的变化比 API 更敏感] 名字.
另请参阅:
- Faces 4.0: rename xmlns.jcp.org taglib URIs
- JSF returns blank/unparsed page with plain/raw XHTML/XML/EL source instead of rendered HTML output