2010-01-13 57 views
2

.war由GlassFish v3提供。我想從我的jspx中包含一個JavaScript文件。GlassFish v3上的jspx腳本元素

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

更新:不知道任何這是恰當的,但這裏是

<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>並保留了關閉標籤我JSPX文件的開頭。我認爲這很醜,所以如果有人有更好的答案,我肯定會感興趣。

+0

對於它的價值,這是使用Tomcat的WebSphere Application Server的 – 2011-06-14 20:29:22

3

不幸的是,jspx被稱爲「最小化」空元素。在不爲已呈現的HTML添加空間的情況下防止最小化的一種方法是插入註釋。例如:

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

雖然它仍然很醜。

+0

工作,如果你堅持認爲IBM正式認可的解決方案(6),但不爲WebSphere (7)。 – Ralph 2011-04-14 16:57:13

0

一個潛在的清潔的解決方案是創建一個定製的標籤庫,其輸出正確的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>