Jakarta EE 9 的 JSF 页面中“h”、“f”等的命名空间是什么?

use*_*352 9 jsf jakarta-ee

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

Bal*_*usC 14

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

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

也可以看看: