2012-01-23 33 views
5

Me gustaría crear una aplicación web usando las páginas web Spring y .jspx.Archivos Jspx y comentarios condicionales

Mi pregunta es ¿cómo puedo poner comentarios condicionales para IE en jspx? Parecen no ser interpretados.

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

También me gustaría que mis páginas web cumplan HTML5.

He intentado algunos métodos, pero tengo problemas de incompatibilidad en IE9 (parece que no reconocen el encabezado y la sección).

Editar:

Aquí es mi etiqueta de la cabeza

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

Pero, si miro a la fuente bajo IE9 no veo los enlaces para html5shiv y mi css secundaria.

Respuesta

7

De acuerdo con la especificación JSP 2.0, la sección 1.5.2, los comentarios en documentos JSP son ignorados:

Los comentarios en documentos JSP utilizan la sintaxis XML, de la siguiente manera:

<!-- comments ... ->

El cuerpo del contenido se ignora por completo. Los comentarios en los documentos JSP se pueden usar para fines de documentación y para "comentar" partes de una página JSP .

Sección 6.2.2 muestra un ejemplo utilizando jsp:text y secciones CDATA que podrían adaptarse a su caso de uso, por favor intente si el siguiente código funciona:

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

¡¡¡Estupendo !!! Esto está funcionando. Gracias. – Tony

+0

Oh DIOS, XML, ¿por qué ??? ¿Puedes poner bloques CDATA dentro de jsp: text CDATA sin un error? –

0

Para la compatibilidad de HTML 5 con las importaciones de htmlshiv son correctas. Asegúrese de tener las importaciones condicionales dentro de las etiquetas de encabezado. Esto no tiene nada que ver 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

Eche un vistazo a mi edición. Esto no está funcionando. – Tony

3

Después de una gran cantidad de intentos, encontré que el uso de códigos ASCII para los símbolos de comentarios funcionó muy bien en las páginas .jspx. Prueba este trozo de código:

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

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

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

Esto funciona muy bien. ¡Gracias por tu consejo! – boomboomboom

0

Bueno, si ve el código HTML generado, se dará cuenta, que jstl va a escapar de la materia hacia fuera en el comentario condicional, por lo que no va a funcionar:

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

Entonces Abhi, debes decirle a jstl que deje la parte condicional solo, dile que no la analice. Jstl no lo ignorará, solo porque lo pones en el.

Cuestiones relacionadas