Glassfish V3의 JSPX 스크립트 요소
-
20-09-2019 - |
문제
.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>
제휴하지 않습니다 StackOverflow