2012-01-23 34 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不會忽視它,僅僅因爲你已經把它放在了。