I want to use a jspx to generate some HTML5 but I'm running into a strange
problem.
I've produced a very small test to demonstrate the problem.
In the jspx pasted below if I remove the comment in the <script> tag (in
the head) then the page won't render properly in chrome browser. When I
have a non-empty <script> tag then it renders fine.
I've used curl to look at the HTML being generated from Tomcat and can see
the difference.
When the <script> tag is empty it gets rendered as a self-closing tag:
<script src="sayhi.js" type="text/javascript"/>
When I put in the comment it gets rendered as I expect (not self-closing):
<script src="sayhi.js" type="text/javascript">// tag can not be
empty</script>
Why does this happen?
It's quite natural to write the empty <script> tag and countless example
exist so why can't I do it from my jspx?
Thanks,
Kevin.
P.S. the sayhi.js file contains function sayhi() { alert('HI!'); }
<?xml version="1.0" encoding="UTF-8"?>
<jsp:root version="2.1" xmlns:jsp="http://java.sun.com/JSP/Page">
<jsp:directive.page contentType="text/html" pageEncoding="UTF-8" />
<jsp:output omit-xml-declaration="true" />
<jsp:output doctype-root-element="html"
doctype-system="about:legacy-compat" />
<html>
<head>
<script type="text/javascript" src="sayhi.js">// tag can not
be empty</script>
</head>
<body>
<h1>HTML5 from jspx</h1>
<script type="text/javascript">sayhi();</script>
</body>
</html>
</jsp:root>