3

我正在尝试使用 JSF 2.2 创新 html5 传递属性功能。

与 m09 版本一起使用的组件标记上的命名空间属性。

<dependency>
   <groupId>org.glassfish</groupId>
   <artifactId>javax.faces</artifactId>
   <version>2.2.0-m09</version>
</dependency>

 

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://java.sun.com/jsf/passthrough">
  <h:head>
    <title>HTML 5</title>
  </h:head>
  <h:body>
    <h:inputText p:placeholder="Enter text"/>    
  </h:body>
</html>

但不适用于较新的版本。

f:passThroughAttributes 标签适用于较新的版本。

为什么?

4

1 回答 1

10

您应该使用以下命名空间:

xmlns="http://xmlns.jcp.org/jsf/passthrough"

解释:

新的命名空间 xmlns.jcp.org 必须用于 2.2 的新直通内容(因为这是 2.2 的新名称)。您可以为 ui、h 和 f 命名空间使用旧的 (java.sun.com) 或新的 (xmlns.jcp.org) 命名空间,因为我们需要保持兼容性。但我鼓励您将新的命名空间用于 2.2 的所有内容。

这是 JIRA 参考:当使用分配给 http://java.sun.com/jsf/passthrough 的短名称作为属性前缀时,传递属性不起作用

于 2013-06-09T05:37:28.837 回答