2

.war 由 GlassFish v3 提供。我正在尝试从我的 jspx 中包含一个 javascript 文件。

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

更新:不确定这是否相关,但这是我的 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

4 回答 4

4

我使用<script ...><jsp:text> </jsp:text></script>并保留了结束标签。我认为这很丑陋,所以如果有人有更好的答案,我肯定会感兴趣。

于 2010-01-13T17:16:39.970 回答
3

不幸的是,jspx 以“最小化”空元素而闻名。在不向呈现的 HTML 添加空格的情况下防止最小化的一种方法是插入注释。例如:

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

不过,它仍然很丑。

于 2010-01-28T19:43:11.877 回答
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>]]>

我在这里更详细地介绍了这个主题: 如何使用 JSPX 生成有效的 HTML?(不是 XHTML)

于 2011-01-09T14:40:23.073 回答
0

另一个丑陋的解决方案:

<tag>${null}</tag>
于 2012-08-31T13:08:17.397 回答