1

一些消息来源表明可以在 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?这些网址是否有某种索引?

4

2 回答 2

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 页面的一部分。

于 2013-06-20T09:31:50.800 回答
1

后者是正确的定义。我不认为headJSF 以这种方式使用标签。使用 JSFhtml标记库。

<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 输入组件。有关信息和示例应用程序,请参阅有关 HTML5/JSF 传递的 Java EE 7 教程部分。

于 2013-06-17T05:30:40.347 回答