首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过htmltidy提供呈现的jsp页面

通过htmltidy提供呈现的jsp页面
EN

Stack Overflow用户
提问于 2010-02-03 02:41:11
回答 3查看 1K关注 0票数 7

我有一个在Glassfish上运行的Java项目,它呈现了一些丑陋的HTML。这是使用各种内部和外部JSP库带来的副作用。我想设置一些渲染后的过滤器,它将通过HTMLTidy提供最终的超文本标记语言,这样源代码就会很好,整洁,有助于调试。这个是可能的吗?

在服务器将JSP呈现为HTML之后,是否有一种内置的机制来执行某些操作?该操作是否可以将生成的HTML作为字符串并对其进行操作?有没有一些简单的内置选项可以在不需要额外编码的情况下做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-03 02:45:15

JTidyFilter

票数 5
EN

Stack Overflow用户

发布于 2010-02-03 04:15:06

通过将JSP2.1属性trimDirectiveWhitespaces设置为true,也可以在一定程度上消除此行为。这可以通过以下方式在单个JSP文件中启用:

代码语言:javascript
复制
<%@page trimDirectiveWhitespaces="true" %>

或通过web.xml中的以下条目(需要将其声明为Servlet2.5!)对所有JSP文件执行以下操作:

代码语言:javascript
复制
<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
</jsp-config>

在JSP2.1之前的容器中,或者在JSP2.1容器中,由于某些内部原因,实际上不支持这一点,比如Tomcat,您需要参考它的JspServlet文档来获取任何初始化参数。例如,在Tomcat中,您也可以通过在Tomcat的/conf/web.xml中将JspServlettrimSpaces初始参数设置为true来配置它

代码语言:javascript
复制
<init-param>
    <param-name>trimSpaces</param-name>
    <param-value>true</param-value>
</init-param>

应该注意的是,这两种方法并不真正“重新格式化”HTML代码。它实际上只修剪了标记库和scriptlet留下的空格。另请参阅this Sun article。例如,下面的代码..

代码语言:javascript
复制
<ul>
    <c:forEach items="${list}" var="item">
        <li>${item}</li>
    </c:forEach>
</ul>

..would基本上是以

代码语言:javascript
复制
<ul>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
</ul>

因此具有双重压痕。实际上,您可以通过重新格式化代码来解决此问题,比如JSP标记是半缩进的:

代码语言:javascript
复制
<ul>
  <c:forEach items="${list}" var="item">
    <li>${item}</li>
  </c:forEach>
</ul>

但我认为JTidyFilter在这里更简单:)

票数 3
EN

Stack Overflow用户

发布于 2010-02-03 02:46:30

如果您可以更改控制流,以便在html输出返回到浏览器之前获得它,那么jtidy可能会对您有所帮助。

不过,我认为这是最坏的修复方案。从长远来看,更有帮助的应该是分离你的html生成代码并重构它。即使是在大型、复杂的项目中,您也应该能够以小块的方式完成此工作,并且您将获得逐步的改进。否则,如果你的问题发展到整洁无能为力的地步,你就会回到你开始的地方(还有更多笨拙的代码要处理)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2186650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档