JSF / Primefaces中的Attribute和PassthroughtAttribute之间有什么不同

时间:2017-03-11 12:47:31

标签: jsf

我使用的是Primefaces 5.3,在某些情况下我需要为UIComponent添加一个自定义属性(比如p:inputText或p:inputTextArea),

我在UIComponent中看到我们有两个映射是Attributes和PassthroughtAttributes,所以我用两个然后看到PassthroughtAttribute可以让我减少页面加载时间(因为那些属性不会在HTML上呈现)。

除此之外,还有其他我应该知道的事情吗?

全部谢谢

1 个答案:

答案 0 :(得分:1)

普通属性是JSF组件的输入,例如用于数据绑定。

直通属性是JSF 2.2的新功能。为此,引入了新的命名空间try { Session dominoSession = NotesFactory.createSession( host, username, password ); System.out.println("USER Detail : "+dominoSession.getUserName()); Database dominoDb = dominoSession.getDatabase( host, mailbox ); Document memo = dominoDb.createDocument(); memo.appendItemValue( "Form", "Memo" ); memo.appendItemValue( "Importance", "1" ); memo.appendItemValue( "CopyTo", copyTo ); memo.appendItemValue( "Subject", subject ); memo.appendItemValue( "Body", message ); memo.send( false, sendTo ); dominoDb.recycle(); dominoSession.recycle(); } catch ( NotesException e ) { System.out.println( "Error - " + e.toString() ); } catch ( Exception e ) { System.out.println( "Error - " + e.toString() ); } 。这些不会在服务器端更改,而是直接呈现。所以你可以直接使用HTML5函数。

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

<h:inputText id="email" value="#{userBean.email}" pt:type="email" pt:placeholder="Enter email"/> 是正常属性,由服务器端处理。

valuept:type被服务器端忽略,并直接呈现为HTML。

输出:

pt:placeholder