JSF 2.1& IE条件评论

时间:2012-05-16 10:47:01

标签: jsf jsf-2 conditional-comments

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

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

<!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行有<h:outputText />但h命名空间尚未定义。这是我可以使用的元素,我可以附加各种命名空间但不会影响我的最终HTML吗?我还能解决这个问题吗?

1 个答案:

答案 0 :(得分:8)

将所有内容全部包含在<f:view>中并在那里定义名称空间。

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

整个JSF视图已隐式包含在<f:view>