导出html页面时,java图像不会加载到jasper report中
我无法在使用jasper reports导出html时显示图像。我试图从这个论坛中找到不同的解决方案。但我一点运气都没有,我需要去哪里才能错过。我正在分享我的代码
jasper代码:
<parameter name="IMG_PATH" class="java.lang.String">
<parameterDescription><![CDATA[]]></parameterDescription>
</parameter>
<image>
<reportElement uuid="f4c3be1d-ec89-4e22-92c5-e75fbad2bcc5" isPrintRepeatedValues="false" x="567" y="2" width="174" height="56"/>
<imageExpression><![CDATA[$P{IMG_PATH}+"\\logo.gif"]]></imageExpression>
</image>
Java代码:-
rptExporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint);
rptExporter.setParameter(JRHtmlExporterParameter.OUTPUT_STREAM, byteArrayOutputStream);
rptExporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING, "UTF-8");
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
if (reportFrmType.equalsIgnoreCase("HTML")) {
JRHtmlExporterParameter.CHARACTER_ENCODING, "UTF-8");
rptExporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,
"http://" + request.getServerName() + ":"
+ request.getServerPort() + ""
+ request.getContextPath()
+ "/resources/images/logo.png");
rptExporter.setParameter(
JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR,
Boolean.TRUE);
rptExporter.setParameter(
JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,
Boolean.FALSE);
}
但我无法获得图像并看到谷歌Chrome>;控制台,然后像这样获取图像
<tr valign="top">
<td colspan="2" style="width: 292px; height: 43px;"></td>
<td style="width: 4px; height: 43px;"></td>
<td colspan="2" rowspan="4"><img src="http://localhost:7005/SamplePortal/resources/images/logo.pngimg_0_0_5" style="width: 174px" alt=""></td>
</tr>
当我从谷歌Chrome控制台中删除“img_0_0_5”,然后加载图像时。为什么在src中添加“img_0_0_5”
我尝试了另一种方式,甚至我都无法在chrome浏览器中获取图像并检查控制台
<td colspan="2" rowspan="4"><img src="image?image=img_0_0_5" style="width: 174px" alt=""></td>
下面是共享代码
网络。xml:-
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
</servlet>
Java代码:-
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
Map imagesMap= new HashMap();
imagesMap.put("IMG_PATH", "wda-logo.png");
request.getSession().setAttribute("IMAGES_MAP", imagesMap);
if (reportFrmType.equalsIgnoreCase("HTML")) {
rptExporter.setParameter(
JRHtmlExporterParameter.CHARACTER_ENCODING, "UTF-8");
rptExporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP,
imagesMap);
rptExporter.setParameter(
JRHtmlExporterParameter.IMAGES_URI,
"image?image=");
rptExporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME,
"test");
rptExporter.setParameter(
JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR,
Boolean.TRUE);
rptExporter.setParameter(
JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,
}
# 1 楼答案
我在IMAGES_URI中漏掉了上下文路径,在servlet映射中给出了错误信息。我分享了下面的代码
还有网络。xml
谢谢大家的支持