jsf - 哪个 XML 命名空间用于 JSF 2.2 及更高版本

标签 jsf facelets jsf-2.2 xml-namespaces java-ee-7

我已将我的应用程序从 JSF 1.2 迁移到 2.2。

它在 java.sun.com 上使用了 XML 命名空间域如 xmlns:f="http://java.sun.com/jsf/core" .然而,Oracle's Java EE 7 tutorial正在 xmlns.jcp.org 上使用 XML 命名空间域喜欢xmlns:f="http://xmlns.jcp.org/jsf/core" .

推荐哪一个,为什么要更改?

最佳答案

Which one is recommended?



继续在 xmlns.jcp.org 上使用 XML 命名空间领域。这是自 2013 年 Java EE 7 以来新引入的(涵盖 a.o. JSF 2.2、Servlet 3.1、CDI 1.1 等)。请注意,这不仅会影响 Facelets 文件,还会影响 XML 配置文件,例如 faces-config.xml , web.xml , beans.xml , 等等。
java.sun.com 上的旧 XML 命名空间仍然存在向后兼容性,但这种支持最终将在 future 的 Java EE 版本中消失。您应该尽快迁移您的代码库。使用普通 IDE 提供的“在所有文件中查找和替换”工具应该是一项微不足道的任务。

只有较旧的 Mojarra 2.2.0/2.2.1 版本存在与 XML 命名空间更改相关的错误,但这些错误不应在较新版本中出现。另见 a.o.
  • Using new xmlns.jcp.org namespace on composites causes java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.putIfAbsent
  • f:viewParam doesn't pass required parameter when new xmlns.jcp.org namespace is used
  • The metadata component needs to be nested within a f:metadata tag. Suggestion: enclose the necessary components within <f:metadata>


  • and why was this changed?



    因为自 2010 年以来 Java 不再来自 Sun。请注意,他们很聪明地不做 java.oracle.com或与当前拥有的公司紧密结合的东西。它现在很好地独立于 JCP ( Java Community Process ),后者真正负责管理 Java (EE) 规范。

    关于jsf - 哪个 XML 命名空间用于 JSF 2.2 及更高版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47992174/

    相关文章:

    jsf - 在不执行验证的情况下重置输入字段

    jsf - 显示p :fileupload image in p:graphicImage preview without saving it

    java - 当我尝试从 selectManyCheckbox 检索选中的项目时, while 循环到无穷大

    jsf-2 - JSF 2.0 - 发布的是哪个版本的 Facelets?

    database - 从数据库加载 Facelets 模板

    java - SSO Spring Security 和 JSF

    java - JSF 和 xhtml 文件的自动重新加载

    Spring Boot JSF集成

    jsf - Tomcat 8(和 9)强制行为,空字符串被错误地设置为空字符串

    css - 禁止子元素从父元素继承样式