5

我注意到在 JSF 2.1.* 中,我的 IE 条件注释不再起作用。各种字符正在被 HTML 实体替换并使注释语法无效。BalusC 在另一个使用 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 提到的解决方案,我希望<h:outputText />在第 2 行,但尚未定义 h 命名空间。这是一个我可以使用的元素,我可以将各种命名空间附加到但不会影响我的最终 HTML?还有什么其他想法可以解决这个问题吗?

李,

4

1 回答 1

8

将其全部包装在 a 中<f:view>并在那里定义名称空间。

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

否则,整个 JSF 视图已经隐式包装在<f:view>.

于 2012-05-16T11:41:53.243 回答