Jspx файлы и условные комментарии - PullRequest
5 голосов
/ 23 января 2012

Я хотел бы создать веб-приложение, используя веб-страницы Spring и .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.

Я пробовал некоторые методы, но у меня возникли проблемы несовместимости в IE9 (кажется, не распознает заголовок и раздел).

Edit:

Вот мой главный тег

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

Ответы [ 4 ]

7 голосов
/ 23 января 2012

Согласно спецификации 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>
3 голосов
/ 24 августа 2012

После огромного количества попыток я обнаружил, что использование кодов ASCII для символов комментариев очень хорошо работает на страницах .jspx.Попробуйте этот бит кода:

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

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

&lt;&#33;[endif]-->
0 голосов
/ 30 мая 2013

Что ж, если вы просмотрите сгенерированный HTML, вы поймете, что jstl исключит все из условного комментария, поэтому он не будет работать:

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

Итак, Абхи, вам нужно сказатьПросто оставьте условную часть в покое, скажите, чтобы она не анализировалась.Jstl не будет игнорировать это только потому, что вы поместили его в.

0 голосов
/ 23 января 2012

Для совместимости с HTML 5 использование импорта htmlshiv корректно. Убедитесь, что у вас есть условный импорт внутри тегов 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>
...