这两天用SS2H、easyUI 、ireport,做了点东西。中间出现了不少问题,在此记录记录。。。
一、easyUI 的编码方式 没有 gbk ,而我项目的编码方式却是gbk。出现中文乱码。我试着用request把数据传出来并显示,却没有乱码,不知道是不是easyUI编码方式的原因?
二、用ireport制作的报表,预览时都有数据。而用html显示出来时,外键 却为null;用pdf显示出来时,不仅外键为null,而且中文没有显示出来;用xml显示也是外键为null;用xls还是外键为null。
解決方案:
1.html報表圖片無法顯示。
如果要想以HTML形式显示报表内容则还需要在web.xml配置jasperReport自带的一个servlet如下:
- <!-- JasperReport包中自带的Servlet,用来做为HTML形式显示报表的时候报表的图片,要在这里配置上,图片在jasperReport包中 -->
- <servlet>
- <servlet-name>JasperReportImageServlet</servlet-name>
- <servlet-class>
- net.sf.jasperreports.j2ee.servlets.ImageServlet
- </servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>JasperReportImageServlet</servlet-name>
- <url-pattern>/image</url-pattern>
- </servlet-mapping>
action中不需要修改,只需在struts.xml里添加一个HTML不配置如下:
- <action name="HTML" class="com.×Action">
- <result name="success" type="jasper">
- <param name="location">/jasper/preson.jasper</param>
- <param name="dataSource">presonList</param>
- <param name="reportParameters">reportParameter</param>
- <param name="format">HTML</param>
- <param name="imageServletUrl">
- <![CDATA[/image?image=]]>
- </param>
- </result>
- </action>
imageServletUrl的值就是上面的serlvet的路径,该servlet就是生成了一个图形,如果不配置该serlvet则页面上有图片没显示的样子。
相關鏈接:http://www.fengfly.com/plus/view-168657-1.html
2.pdf報表不顯示中文。
1、把iTextAsian.jar亚洲语言包放到项目中
2、在用iReport做模板设计,在设计pdf报表模板时注意,把所有涉及到的中文显示设置如下:
<textElement>
<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
</textElement>
三、在添加ireport jar包时,有几个jar包 struts2 中已经 有了,得留意 ,不然会报错的。