2013-06-12 85 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页面的一部分处理。