【问题标题】:Jasper report generating bad HTMLJasper 报告生成错误的 HTML
【发布时间】:2010-09-18 03:42:34
【问题描述】:

如果我在 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>

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

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

提前致谢, 唐

【问题讨论】:

    标签: java html jasper-reports


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 如上所述,BR标签是我自己添加的,而A标签是Jasper添加的。当我写 Firefox 关闭标签时,我的意思是当我在 Firebug 中查看生成的源代码时,它显示为一对匹配的打开和关闭标签。
      • 但是,当我在 Web Developer(相当于 Firebug 的 IE)中查看生成的源代码时,它会如上所示。
      • 很好,您找到了解决方案。为了记录,Firebug 显示了 Dom 的字符串版本,而不是原始源,因此它总是格式良好。如果这也是生成的视图,我会更好地理解大写标签。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多