2012-01-23 14 views
5

Mi piacerebbe creare un'applicazione Web utilizzando le pagine Web di Spring e .jspx.File Jspx e commenti condizionali

La mia domanda è: come posso inserire i commenti condizionali per IE in jspx? Sembrano non essere interpretati.

<!--[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]--> 

Inoltre, desidero che le mie pagine Web siano conformi a HTML5.

Ho provato alcuni metodi ma ho riscontrato problemi di incompatibilità in IE9 (sembra non riconoscere l'intestazione e la sezione).

Edit:

Qui è la mia tag head

<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]--> 

Ma, se guardo la sorgente sotto IE9 non vedo i link per html5shiv e il mio css secondario.

risposta

7

Secondo la specifica JSP 2.0, sezione 1.5.2, i commenti nei documenti JSP vengono ignorati:

commenti nei documenti JSP usano la sintassi XML, come segue:

<!-- comments ... ->

Il corpo del contenuto viene completamente ignorato. I commenti nei documenti JSP possono essere utilizzati a scopo di documentazione e per "commentare" parti di una pagina JSP .

sezione 6.2.2 mostra un esempio utilizzando jsp:text e CDATA sezioni che potrebbero essere adattati al vostro caso d'uso, si prega di provare se il seguente codice funziona:

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

Bello !!! Questo sta funzionando. Grazie. – Tony

+0

Oh Dio, XML, perché ??? Puoi inserire i blocchi CDATA all'interno del jsp: text CDATA senza errori? –

0

Per la compatibilità HTML 5 che utilizza le importazioni htmlshiv sono corrette. Assicurati di avere le importazioni condizionali all'interno dei tag principali. Questo non ha nulla a che fare con 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

Dai un'occhiata alla mia modifica. Questo non funziona. – Tony

3

Dopo una grande quantità di tentativi, ho trovato che usare i codici ASCII per i simboli dei commenti funzionava molto bene sulle pagine .jspx. Prova questo pezzo di codice:

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

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

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

Funziona alla grande. Grazie per il tuo suggerimento! – boomboomboom

0

Beh, se si visualizza il codice HTML generato, vi renderete conto che JSTL sfuggirà la roba nel commento condizionale, quindi non funzionerà:

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

Quindi Abhi, devi dire a jstl di lasciare la parte condizionale da sola, digli di non analizzarla. Jstl non lo ignorerà, solo perché lo hai messo nel.