【问题标题】:Invisible comments in jsf 2.0? [duplicate]jsf 2.0 中的不可见评论? [复制]
【发布时间】:2011-03-30 20:49:32
【问题描述】:

是否可以将 cmets 嵌入我的 .xhtml 文件中,这些文件只显示在源文件中而不是呈现的结果中? 我想在文件中包含作者、日期、...,但最终用户在生成的输出中不应该看到它们。如果我使用标准评论标签<!-- -->,浏览器会显示它们。

【问题讨论】:

    标签: jsf jsf-2 comments facelets invisible


    【解决方案1】:

    将以下内容添加到您的web.xml

    <context-param>
        <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
        <param-value>true</param-value>
    </context-param>
    

    这样Facelets 将在解析视图xhtml 模板时跳过cmets。

    【讨论】:

    • 无变化。我的 jboss 5.1 仍然尝试在 cmets 之间运行内容。
    【解决方案2】:

    JSF 中不可见的 cmets 是一个缺点,特别是对于初学者。我同意 Minchev 先生的回答。无论如何,我提供了一种替代方法来评论 JSF 中的内容,包括使用 ui:remove

    <ui:remove> This is a comment </ui:remove>
    

    UI Remove 标签用于指定 Facelets 视图处理程序在编译时应从您的页面中删除的标签或内容块。这个标签没有属性。您可以使用此标记来指示应从呈现的页面中删除特定标记。

    删除design time 期间需要的内容很有用,但在运行时不需要,例如 cmets、一些有助于填充页面内容以适应视觉布局的存根内容(例如“lorem ipsum”) Dreamweaver 等设计师。

    见:Practical implications of Facelets ui:remove tag

    请注意,Facelets编译过程比 JSP 编译过程快得多,因为当您第一次访问页面时,实际上并没有在后台生成和编译 Java 字节码。 UI Remove 标签用于指定 Facelets 视图处理程序在编译时应从页面中删除的标签或内容块。这个标签没有属性。

    Examples of both comment options

    【讨论】:

      【解决方案3】:

      错了,正确的方法是:

      <context-param>
          <param-name>facelets.SKIP_COMMENTS</param-name>  
          <param-value>true</param-value>  
      

      这对我有用,javax.faces.FACELETS_SKIP_COMMENTS 不!

      【讨论】:

      • 问题是关于 JSF 2.x,而不是 1.x。 JSF 2.0 已经在 5 年前推出。也许是时候赶上?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多