JSF 2.2 html5友好页面

时间:2013-06-12 09:00:22

标签: jsf jsf-2.2 java-ee-7 glassfish-4

有些消息来源表明可以在JSF2.2页面中使用非突出的jsf:id属性。

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

taglib描述符使用不同的URL。
来自博客:

<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?这些网址是否有某种索引?

2 个答案:

答案 0 :(得分: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页面的一部分。

答案 1 :(得分: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>
....

您通常将jsf:id用于HTML5输入组件。有关信息和示例应用程序,请参阅Java EE 7 Tutorial section on HTML5/JSF pass-through