我需要在我的JSF2应用程序中使用一些特定于浏览器的CSS(Mojarra 2.1,Tomcat 7).
我尝试添加到我的模板:
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="#{cfgs.externalCssUrlIE8}" />
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
但由于我也使用了以下注释:
<context-param>
<!-- Removes any comments from the rendered HTML pages. -->
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
我的问题...当我禁用`javax.faces.FACELETS_SKIP_COMMENTS时,我得到了一堆其他问题.而且我不认为我的源代码注释属于生成的页面.
我也尝试将开关放在CDATA中:
<![CDATA[
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="#{cfgs.externalCssUrlIE7}" />
<![endif]-->
]]>
Run Code Online (Sandbox Code Playgroud)
但内部<呈现为html实体..: - /,所以它不起作用.
问题:还有其他解决方案吗?是否存在任何JSF2标记来处理这个问题?外部标签库?
先谢谢,史蒂夫
Bal*_*usC 18
唯一的方法是使用<h:outputText escape="false">.
<h:outputText value="<!--[if IE 8]><link rel="stylesheet" type="text/css" href="#{cfgs.externalCssUrlIE8}" /><![endif]-->" escape="false" />
Run Code Online (Sandbox Code Playgroud)
是的,这是一条丑陋的线.但是没有其他标准方式.
更新:JSF实用程序库OmniFaces<o:conditionalComment>正是为了这个目的而提供的,这样你就不再需要丑陋<h:outputText escape="false">了:
<o:conditionalComment if="IE 8">
<link rel="stylesheet" type="text/css" href="#{cfgs.externalCssUrlIE8}" />
</o:conditionalComment>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5611 次 |
| 最近记录: |