Jasper报告生成错误的HTML

时间:2008-10-20 16:15:24

标签: java html jasper-reports

如果我在IE7中查看我的一个Jasper报告生成的HTML,我会看到以下内容:

<BR /><BR />
<A name="JR_PAGE_ANCHOR_0_1">
<TABLE style="WIDTH: 1000px" cellSpacing="0" cellPadding="0" bgColor="#ffffff" border="0">
<-- table body omitted -->
</TABLE>

通过JRHtmlExporterParameter.HTML_HEADER参数添加两个BR标记。在这些标记之后和报告表开始之前,有一个由Jasper报告生成的未关闭的锚标记。这个标签没有正确关闭的事实搞乱了我的报告的格式,因为IE超链接整个报告TABLE。我实际上并没有使用这个锚标签,所以如果我可以阻止Jasper生成它,那将解决我的问题。

顺便提一下,这个问题只发生在IE中,在Firefox中一切正常,因为锚标签已正确关闭。

提前致谢, 唐

2 个答案:

答案 0 :(得分:2)

我接受了Phil的建议并深入研究了Jasper的源代码。我已经修复了问题并将其提交给了项目。可以获得原因和解决方案的详细信息here

答案 1 :(得分:1)

这是奇怪的代码,<br />标签是XHTML风格,而未封闭的a标签是旧的HTML,就像大写标签名称一样。如果您使用纯HTML标头/内容类型提供此类页面,那么IE可能会很高兴。

当你写Firefox关闭标签时,我想你的意思是它正确地没有扩展超过块标签的超链接跨度。请注意,当您将页面保存到磁盘时,FF的视图源可以显示不存在的结束标记!

坦率地说,我不知道你是否可以通过一些配置摆脱这些锚点。如果没有人提供真正的解决方案,也许您可​​以下载Jasper的源代码并在其中搜索JR_PAGE_ANCHOR,查看生成它的代码是否是条件驱动的。

或者,如果可以,您可以对生成的代码进行后处理。