【问题标题】:JSF 2.1 & IE Conditional CommentsJSF 2.1 & IE 条件注释
【发布时间】:2012-05-23 22:07:02
【问题描述】:

我注意到在 JSF 2.1.* 中,我的 IE 条件 cmets 不再工作。各种字符正在被 HTML 实体替换并使注释语法无效。 BalusC 指出a solution to the problem in another question 使用 h:outputText。我的问题是我希望我的条件 cmets 在我的页面顶部,围绕第一个元素。这意味着我不能使用 h:outputText 因为我还没有定义它的命名空间。我相信无论如何都是正确的。这是一个代码示例。

现在大多数 JSF 页面都以类似于 HTML5 样板语法的模板开始:

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 my-application" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 my-application" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9 my-application" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js my-application" xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" lang="en"><!--<![endif]-->
<h:head>
  <meta charset="utf-8" />
  ...

使用 BalusC 提到的解决方案,我希望在第 2 行出现 &lt;h:outputText /&gt;,但尚未定义 h 命名空间。这是我可以使用的元素,我可以将各种名称空间附加到但不会影响我的最终 HTML?还有其他想法可以解决这个问题吗?

李,

【问题讨论】:

    标签: jsf jsf-2 conditional-comments


    【解决方案1】:

    将其全部包装在 &lt;f:view&gt; 中并在那里定义命名空间。

    <!DOCTYPE html>
    <f:view xmlns="http://www.w3.org/1999/xhtml" ...>
        ...
    </f:view>
    

    否则整个 JSF 视图已经隐式包装在 &lt;f:view&gt; 中。

    【讨论】:

    • 感谢 BalusC :) 我确实想知道 f:view 但决定在这里发帖而不是自己尝试!
    • 您还需要在此解决方案中使用&lt;h:outputText /&gt; 吗?还是 &lt;f:view /&gt; 替换它?
    • Mowgli,你仍然需要 标签。该解决方案所做的是提供识别标签所需的命名空间。
    猜你喜欢
    • 2016-07-22
    • 2011-02-04
    • 2011-10-30
    • 1970-01-01
    • 2012-04-26
    • 2012-02-24
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    相关资源
    最近更新 更多