【问题标题】:Managed bean method still invoked when commenting out a JSF tag using HTML comments使用 HTML 注释注释掉 JSF 标记时仍会调用托管 bean 方法
【发布时间】:2013-07-19 23:14:24
【问题描述】:

我正在使用 JSF 2.0 在 Java EE 7 中开发一个 Web 应用程序,该应用程序部署在 GlassFish 4 服务器上。

我创建了一个包含 JSF 标记的页面,并在一段时间后决定注释掉一个使用 <!-- --> 调用托管 bean 方法的 commandLink

我发现不管评论如何,这个方法都会执行。

这是正常行为还是我做错了什么?

【问题讨论】:

  • 它实际上完全有道理:HTML cmets 输出 HTML 代码,而不是生成 HTML 代码的服务器端代码。
  • @BalusC 实际上,我预计所有相关方都会忽略注释代码。至少我学到了一些新东西:)

标签: jsf-2 html


【解决方案1】:

你必须设置标志来跳过 cmets:

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

否则无论注释标签如何,您在 cmets 中的代码都会执行

【讨论】:

  • 此 Facelets 1.x 特定参数在 Facelets 2.x 中已弃用。
【解决方案2】:

您可以使用&lt;ui:remove&gt; 而不是使用常规 XML 注释,它不会触发您的 commandButton 事件。此外,&lt;ui:remove&gt; 中的所有内容都不会放入生成的 HTML 中。

例子:

<ui:remove>
    <h:commandButton ... />
</ui:remove>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2016-10-24
    • 2012-02-22
    • 2023-03-16
    • 2014-04-20
    相关资源
    最近更新 更多