`
simon511
  • 浏览: 13519 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论
  • me-: 有java的安全,有c的帅气干净利落,好东西groovy
    groovy

displaytag 导出中文乱码和去掉HTML标签的解决方法

阅读更多

最近做的项目中用到了displaytagdisplaytag还是一个相当不错的分页标签,功能比较强大,最重要的是开源的。项目中部分列表需要实现导出excelpdf。直接采用displaytag的导出,发现有两个问题,第一就是中文问题,excelcsv中都会有乱码,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("");

 

 

 

将修改后的方法分别在doHeaserdoExport中调用即可

 

 

另外由于页面采用了sitemesh装饰器,display的导出也会被加上装饰页的内容,因为displaytag的导出链接是会有 d-16544-e这个参数名,而且是固定的,所以只要在decorators.xml中的<excludes>中加上

<pattern>/*d-16544-e=*</pattern>

 就好了.

 

 

 

本文只是记录了怎样解决此项目中问题,此法不一定是最佳解决方案, 如有类似问题可做参考.

 

 

分享到:
评论

相关推荐

    displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar

    displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar

    解决中文乱码的displaytag-1.2.jar

    针对displaytag Excel导出中文乱码的情况,对其添加gbk编码,使其能顺利将中文导出excel

    displaytag详细用法(中文问题已解决)

    4. **解决方案**:解决DisplayTag中文乱码问题,通常需要修改`displaytag.properties`文件,将`pageEncoding`和`contentType`属性设置为`UTF-8`,并确保服务器和数据库连接也支持UTF-8编码。 5. **自定义....

    displaytag-1.1.1标签库及其使用方法.rar

    DisplayTag 还提供了一些辅助标签,如 `&lt;display:export&gt;` 和 `&lt;display:exportLinks&gt;`,它们用于导出表格数据到CSV、Excel、PDF等格式。例如: ```jsp ``` 此外,DisplayTag 还支持国际化(i18n)和自定义样式...

    解决display tag导出execle中文乱码问题 jar包

    NULL 博文链接:https://jhaij.iteye.com/blog/267491

    displayTag导出excecl二次开发包

    displayTag导出excecl二次开发包中文乱码问题解决,运用第三方中间间开发的资源包,具本配置过程参见,...

    displaytag1.1.jar 强大标签

    displaytag1.1显示排序分页导出自动标签

    displaytag中文排序问题解决办法

    总的来说,解决DisplayTag中文排序问题需要对Java字符串排序机制有深入的理解,并可能涉及修改和替换库的源代码。提供的压缩包资源正是为了解决这个问题而准备的,包含了修改后的源文件、编译结果以及使用指南。通过...

    DisplayTag标签使用说明

    DisplayTag 是一个强大的开源Java库,专为Web开发设计,提供了一组标签,用于简化HTML表格的创建和操作。这个库特别适用于MVC模式的应用,它允许开发者更专注于业务逻辑而不是展示层的细节。DisplayTag 的主要目标是...

    displaytag及使用方法

    DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发人员处理表格展示时的一个强大工具。 DisplayTag的工作原理基于JSP标签库,它可以与任何Java持久层框架(如Hibernate、JPA)或数据访问技术(如JDBC)...

    displaytag标签的使用

    displaytag-1.1.tld 是 DisplayTag 自身的标签,而 fmt.tld 标签库主要用于支持中文显示。如果你的项目使用的是 Servlet 2.4 之前的版本,需要在 `web.xml` 中手动配置这两个标签库的位置。 要展示数据,DisplayTag...

    displaytag标签相关文档、源码、实例

    - **去除HTML标签**:在导出数据时,如果数据显示了HTML标签,可以使用`escapeXml="false"`属性来控制是否转义HTML内容。 - **翻页效率**:对于大数据量,提升翻页效率的关键在于优化数据库查询。DisplayTag支持...

    displaytag的使用方法

    Displaytag 是一个开源的 JSP 标签库,专门用于创建数据表格,提供了一组易于使用的标签,可以实现复杂的表格功能,如分页、排序、导出等。在本文中,我们将详细讨论 Displaytag 1.1 版本的使用方法。 **一、...

    自己整理的DisplayTag标签的使用

    DisplayTag作为一款功能强大的标签库,为JSP页面上的Table提供了丰富的处理手段,包括分页、数据导出、分组、列排序等特性,极大地简化了开发者的工作流程,提升了数据展示的灵活性和用户体验。 #### DisplayTag...

    DisplayTag1.2 扩展(自定义分页、排序、导出、页面导航)

    DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...

    displaytag标签使用

    最基本的使用方式是在JSP页面中设置`&lt;display:table&gt;`标签,将一个集合对象(如List)赋值给`name`属性,DisplayTag会自动遍历集合中的每个对象,显示其所有公共getter方法对应的属性。例如: ```jsp ( "test", ...

    displaytag 插件 中文提示

    在这个场景中,"displaytag 插件 中文提示" 指的是Displaytag支持中文显示和提示,这对于中文环境下的应用尤其重要。 Displaytag 的主要特点包括: 1. **多语言支持**:Displaytag 支持多种语言,包括中文,通过...

    Struts2中使用displaytag标签总结

    在Struts2中集成DisplayTag,首先需要将DisplayTag的JAR文件添加到项目的类路径中,并在web.xml配置文件中注册DisplayTag的过滤器和标签库。接着,在JSP页面上,可以使用`&lt;%@ taglib %&gt; `指令引入DisplayTag的标签库...

Global site tag (gtag.js) - Google Analytics