最近做的项目中用到了displaytag,displaytag还是一个相当不错的分页标签,功能比较强大,最重要的是开源的。项目中部分列表需要实现导出excel和pdf。直接采用displaytag的导出,发现有两个问题,第一就是中文问题,excel和csv中都会有乱码,pdf却是中文无法显示.第二个就是导出时会把table中的html标签也导出来。
解决的中文问题方法
对于Csv 在getMimeType()中加上字符集 charset=GBK
public String getMimeType() { return "text/csv;charset=GBK"; //$NON-NLS-1$ }
对于Excel 只要用ExcelHssfView 类就可以了
对于PDF 中文不显,那是因为没有中文字体的 只要把下面代码改一下
并将iTextAsian.jar 引进来就可以了
smallFont = FontFactory.getFont(FontFactory.HELVETICA, 7, Font.NORMAL, new Color(0, 0, 0)); //原代码 smallFont = FontFactory.getFont("STSong-Light","UniGB-UCS2-H", Font.DEFAULTSIZE); //修改后的代码
对于需要过滤Table中的html标签,就需要修改源代码了
其实只要修改 escapeColumnValue(Object value)方法就好,在返回的String加上下段就可以了
//匹配input、font、span和a 四个标签,如果表格还会有其他标签再增就可以了 Pattern p = Pattern.compile("</?[input|font|a|span][^>]*>", Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(returnString); return m.replaceAll("");
将修改后的方法分别在doHeaser和doExport中调用即可
另外由于页面采用了sitemesh装饰器,display的导出也会被加上装饰页的内容,因为displaytag的导出链接是会有 d-16544-e这个参数名,而且是固定的,所以只要在decorators.xml中的<excludes>中加上
<pattern>/*d-16544-e=*</pattern>
就好了.
本文只是记录了怎样解决此项目中问题,此法不一定是最佳解决方案, 如有类似问题可做参考.
分享到:
相关推荐
displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar
针对displaytag Excel导出中文乱码的情况,对其添加gbk编码,使其能顺利将中文导出excel
4. **解决方案**:解决DisplayTag中文乱码问题,通常需要修改`displaytag.properties`文件,将`pageEncoding`和`contentType`属性设置为`UTF-8`,并确保服务器和数据库连接也支持UTF-8编码。 5. **自定义....
DisplayTag 还提供了一些辅助标签,如 `<display:export>` 和 `<display:exportLinks>`,它们用于导出表格数据到CSV、Excel、PDF等格式。例如: ```jsp ``` 此外,DisplayTag 还支持国际化(i18n)和自定义样式...
NULL 博文链接:https://jhaij.iteye.com/blog/267491
displayTag导出excecl二次开发包中文乱码问题解决,运用第三方中间间开发的资源包,具本配置过程参见,...
displaytag1.1显示排序分页导出自动标签
总的来说,解决DisplayTag中文排序问题需要对Java字符串排序机制有深入的理解,并可能涉及修改和替换库的源代码。提供的压缩包资源正是为了解决这个问题而准备的,包含了修改后的源文件、编译结果以及使用指南。通过...
DisplayTag 是一个强大的开源Java库,专为Web开发设计,提供了一组标签,用于简化HTML表格的创建和操作。这个库特别适用于MVC模式的应用,它允许开发者更专注于业务逻辑而不是展示层的细节。DisplayTag 的主要目标是...
DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发人员处理表格展示时的一个强大工具。 DisplayTag的工作原理基于JSP标签库,它可以与任何Java持久层框架(如Hibernate、JPA)或数据访问技术(如JDBC)...
displaytag-1.1.tld 是 DisplayTag 自身的标签,而 fmt.tld 标签库主要用于支持中文显示。如果你的项目使用的是 Servlet 2.4 之前的版本,需要在 `web.xml` 中手动配置这两个标签库的位置。 要展示数据,DisplayTag...
- **去除HTML标签**:在导出数据时,如果数据显示了HTML标签,可以使用`escapeXml="false"`属性来控制是否转义HTML内容。 - **翻页效率**:对于大数据量,提升翻页效率的关键在于优化数据库查询。DisplayTag支持...
Displaytag 是一个开源的 JSP 标签库,专门用于创建数据表格,提供了一组易于使用的标签,可以实现复杂的表格功能,如分页、排序、导出等。在本文中,我们将详细讨论 Displaytag 1.1 版本的使用方法。 **一、...
DisplayTag作为一款功能强大的标签库,为JSP页面上的Table提供了丰富的处理手段,包括分页、数据导出、分组、列排序等特性,极大地简化了开发者的工作流程,提升了数据展示的灵活性和用户体验。 #### DisplayTag...
DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...
最基本的使用方式是在JSP页面中设置`<display:table>`标签,将一个集合对象(如List)赋值给`name`属性,DisplayTag会自动遍历集合中的每个对象,显示其所有公共getter方法对应的属性。例如: ```jsp ( "test", ...
在这个场景中,"displaytag 插件 中文提示" 指的是Displaytag支持中文显示和提示,这对于中文环境下的应用尤其重要。 Displaytag 的主要特点包括: 1. **多语言支持**:Displaytag 支持多种语言,包括中文,通过...
在Struts2中集成DisplayTag,首先需要将DisplayTag的JAR文件添加到项目的类路径中,并在web.xml配置文件中注册DisplayTag的过滤器和标签库。接着,在JSP页面上,可以使用`<%@ taglib %> `指令引入DisplayTag的标签库...