2010-01-13 8 views
2

The .war подается от GlassFish v3. Я пытаюсь включить javascript-файл из моего jspx.Элемент сценария jspx на GlassFish v3

<script type="text/javascript" src="/base/interface/Service.js"></script> 

я получаю следующее в моем HTTP ответ

<script src="/base/interface/Service.js" type="text/javascript" /> 

Проблема в том, что она должна включать в себя </script> тег. Я считаю, что именно поэтому он работает на Chrome, но не на Firefox или IE. Любая идея, как заставить <script></script>

Update: Не уверен, если это уместно, но вот начало моего файла JSPX

<jsp:root version="2.0" 
     xmlns:jsp="http://java.sun.com/JSP/Page" 
     xmlns:c="http://java.sun.com/jsp/jstl/core" 
     xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" 
     xmlns:form="http://www.springframework.org/tags/form" 
     xmlns:spring="http://www.springframework.org/tags" 
     xmlns="http://www.w3.org/1999/xhtml"> 

    <jsp:output doctype-root-element="html" 
      doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" 
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> 
    <jsp:directive.page contentType="text/html" pageEncoding="UTF-8"/> 
... 

ответ

4

Я использовал <script ...><jsp:text> </jsp:text></script> и сохранили закрывающий тег. Я думаю, что это уродливо, поэтому, если у кого-то есть лучший ответ, мне определенно будет интересно.

+0

Для чего это стоит, это решение, которое IBM официально поддерживает, если вы застряли с помощью WebSphere Application Server –

3

К сожалению, jspx известен как «минимизирующий» пустые элементы. Один из способов предотвратить минимизацию без добавления пространства к визуализированному HTML - это вставить комментарий. Например:

<script ...><!-- keep open/close tags --></script> 

Это все еще некрасиво.

+0

Работа для Tomcat (6), но не для Websphere (7). – Ralph

0

Потенциально чистое решение было бы создать пользовательский TagLib, который выдает правильный HTML, например:

<m:htmlScript type="text/javascript" src="/js/jquery-1.4.4.min.js"/> 

продуцирующие:

<script type="text/javascript" src="/js/jquery-1.4.4.min.js"> 

Другой альтернативой было бы инкапсулировать тег в CDATA:

<![CDATA[<script type="text/javascript" src="/js/jquery-1.4.4.min.js"></script>]]> 

Я более подробно осветил эту тему здесь: How to produce valid HTML with JSPX? (not XHTML)

0

Еще одно уродливое решение:

<tag>${null}</tag> 
Смежные вопросы