【问题标题】:JSF 2.2 html5 friendly pageJSF 2.2 html5 友好页面
【发布时间】:2013-06-12 09:00:22
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      后者是正确的定义。我不认为 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

      【讨论】:

        猜你喜欢
        • 2018-04-04
        • 1970-01-01
        • 2022-12-31
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        • 2014-05-02
        • 2012-11-12
        • 1970-01-01
        相关资源
        最近更新 更多