This was a problem when I tried to switch to XML-based JSP over 15 years ago, and it looks like it's still a problem.
Using Tomcat 9, if I have a simple JSP page, the output is nicely formatted.
<%@ page contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8"/>
<title>Example</title>
</head>
<body>
<p>Example</p>
</body>
</html>
The output looks pretty much the same as the source. But if I use a JSP document (JSPX):
<?xml version="1.0" encoding="UTF-8" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.3">
<jsp:directive.page contentType="text/html; charset=UTF-8" />
<jsp:text><!DOCTYPE html></jsp:text>
<html lang="en-US">
<head>
<meta charset="UTF-8"/>
<title>Example</title>
</head>
<body>
<p>Example</p>
</body>
</html>
</jsp:root>
Then the output just becomes one long line:
<!DOCTYPE html><html lang="en-US"><head><meta charset="UTF-8"/><title>Example</title></head><body><p>Example</p></body></html>
Yes, I understand the reasons behind this: parsing to the XML document model, manipulating the tree, reserializing, etc. But as a practical matter: it's ugly, I don't like it, and probably nobody likes it. What's the easiest, most practical way to get some reasonable line breaks and indention in the output?
The fact that the browser doesn't care is beside the point. As developers we have to work with this. This is ugly and gets in the way. (Yes, I know probably nobody uses JSPX or even JSP, but I thought I'd ask anyway.)