2012-01-23 96 views
5

我想创建一个使用Spring和.jspx网页的Web应用程序。Jspx文件和条件注释

我的问题是我怎样才能把条件注释的IE浏览器在jspx?他们似乎没有解释。

<!--[if lt IE 9]> 
    <link rel="stylesheet" type="text/css" href="css/style.css" /> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

另外我想我的网页是HTML5 compliants。

我试过一些方法,但我在IE9中出现了不兼容问题(似乎无法识别标题和部分)。

编辑:

这里是我的头标签

<meta content="text/html" charset="UTF-8" http-equiv="content-type" /> 
<link rel="stylesheet" type="text/css" href="css/style.css" /> 
<!--[if lte IE 9]> 
<link rel="stylesheet" type="text/css" href="css/style_IE8.css" /> 
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

但是,如果我看IE9下的源我看不到html5shiv链接和我的中学CSS。

回答

7

根据JSP 2.0规范,第1.5.2节,在JSP文件的意见被忽略:

评论在JSP文件中使用的XML语法如下:

<!-- comments ... ->

内容的主体完全被忽略。 JSP文档 中的注释可用于文档目的和“注释掉”部分 JSP页面。

6.2.2节显示了使用jsp:text和CDATA部分,其可以适用于你的用例的例子,请尝试,如果下面的代码工作:

<jsp:text><![CDATA[<!--[if lte IE 9]>]]></jsp:text> 
... 
<jsp:text><![CDATA[<![endif]-->]]></jsp:text> 
+1

不错!这是行得通的。谢谢。 – Tony

+0

哦,上帝,XML,为什么?你可以把CDATA块放在jsp:text CDATA里面吗? –

0

对于使用htmlshiv导入的HTML 5兼容性是正确的。确保你在head标签中有条件导入。这与jstl无关。

<head> 
    //Other imports 
    <!--[if lt IE 9]> 
     <link rel="stylesheet" type="text/css" href="css/style.css" /> 
     <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 
    </head> 
+1

看看我的编辑。这不起作用。 – Tony

3

尝试的一个巨大的数量后,我发现在注释符号中使用ASCII代码在.jspx页面上工作得非常好。试试这段代码:

&lt;&#33;&#45;&#45;[if IE]> 

    <link rel="stylesheet" type="text/css" href="css/screenIE.css" /> 

&lt;&#33;[endif]--> 
+0

这很好。感谢您的提示! – boomboomboom

0

好吧,如果你查看生成的HTML,你会发现,这JSTL将逃脱的东西了在有条件的评论,所以它不会工作:

<!--[if IE 9]&gt;&lt;div id=&quot;ie-9&quot;&gt;&lt;![endif]--> 

所以Abhi,你需要告诉jstl离开条件部分,告诉它不要解析它。 Jstl不会忽视它,仅仅因为你已经把它放在了。