2013-06-12 121 views
1

一些消息來源表明,可以在JSF2.2頁面中使用非突出的jsf:id屬性。JSF 2.2 html5友好頁面

https://weblogs.java.net/blog/edburns/archive/2012/11/01/html5-friendly-markup-jsf-22 http://www.apress.com/9781430244257

的標籤庫描述符使用其他網址。
從博客:

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:jsf="http://java.sun.com/jsf"> 
<head jsf:id="head"> 

從書:

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:jsf="http://xmlns.jcp.org/jsf"> 
<head jsf:id="head> 

然而,在使用最新的JSF2.2實現(2.2.0-M15),這兩個URL的標籤描述符不可達(CANNOT_FIND_FACELET_TAGLIB),導致部分未解析的html頁面。

哪裏可以找到jsf標籤庫的正確url?這些網址是否有某種索引?

回答

1

後者是正確的定義。我不認爲head標籤是以這種方式與JSF一起使用的。使用JSF html標籤庫。

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:jsf="http://xmlns.jcp.org/jsf"> 
    <h:head></h:head> 
.... 

對於HTML5輸入組件,您通常使用jsf:id。有關信息和示例應用程序,請參閱Java EE 7 Tutorial section on HTML5/JSF pass-through

2

要使用jsf:id請使用http://xmlns.jcp.org/jsf名稱空間。這適用於表單輸入。它不用於頭標籤。例如,下面的代碼聲明與短名稱JSF的命名空間:

 <html ... xmlns:jsf="http://xmlns.jcp.org/jsf" 
     ... 
     <input type="email" jsf:id="email" name="email" 
     value="#{reservationBean.email}" required="required"/> 

這裏,JSF前綴被放置在id屬性使得HTML5輸入標籤的屬性作爲的Facelets頁面的一部分處理。