문제

.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"/> 
...
도움이 되었습니까?

해결책

나는 사용했다 <script ...><jsp:text> </jsp:text></script> 그리고 그것은 닫는 태그를 유지했습니다. 나는 이것이 추악하다고 생각합니다. 누군가 더 나은 대답을 가지고 있다면 분명히 관심이있을 것입니다.

다른 팁

불행히도 JSPX는 빈 요소를 "최소화"하는 것으로 알려져 있습니다. 렌더링 된 HTML에 공간을 추가하지 않고 최소화를 방지하는 한 가지 방법은 주석을 삽입하는 것입니다. 예를 들어:

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

그래도 여전히 추악합니다.

잠재적으로 더 깨끗한 솔루션은 HTML을 올바르게 출력하는 사용자 정의 taglib를 만드는 것입니다.

<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 아님)

또 다른 못생긴 해결책 :

<tag>${null}</tag>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top