displaytag 中文问题

原创 2007年09月30日 15:52:00

display tag 在显示数据库编码为非GBK时会出现乱码,现用两种方式解决

1.修改原码:

修改文件org.displaytag.model.column文件中以下行

 

 public Object getValue(boolean decorated) throws ObjectLookupException, DecoratorException
    
{

        Object 
object = null;

        
// a static value has been set?
        if (this.cell.getStaticValue() != null)
        
{
            
object = this.cell.getStaticValue();
        }

        
else if (this.header.getBeanPropertyName() != null)
        
{

            
// if a decorator has been set, and if decorator has a getter for the requested property only, check
            
// decorator
            if (decorated
                
&& this.row.getParentTable().getTableDecorator() != null
                
&& this.row.getParentTable().getTableDecorator().hasGetterFor(this.header.getBeanPropertyName()))
            
{

                
object = LookupUtil.getBeanProperty(this.row.getParentTable().getTableDecorator(), this.header
                    .getBeanPropertyName());
            }

            
else
            
{
                
// else check underlining object
                object = LookupUtil.getBeanProperty(this.row.getObject(), this.header.getBeanPropertyName());
                
                
// 20070924,这里是将原码进行转换
               /try {
                    
if(object instanceof String) {
                        
object = new String(((String)object).getBytes("ISO8859_1"),"GBK");
                    }

                }
 catch (UnsupportedEncodingException e) {
                    
object = LookupUtil.getBeanProperty(this.row.getObject(), this.header.getBeanPropertyName());
                }

            }

        }

方法二

 

增加decorater,如下

package com.mycompany.common.displaytag.wrap;

import java.io.UnsupportedEncodingException;

import org.displaytag.decorator.ColumnDecorator;
import org.displaytag.exception.DecoratorException;

public class Encode2GB implements ColumnDecorator{

    
public final String decorate(Object columnValue) throws DecoratorException {
        
// TODO Auto-generated method stub

        
try {
            
return new String(((String)columnValue).getBytes("ISO8859_1"), "GBK");
        }
 catch (UnsupportedEncodingException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
            
return null;
        }


    }


}

关在页面中增加以下

 

<display:table name="test">
    
<display:column property="id" title="ID" />
    
<display:column property="name" group="2" decorator="com.mycompany.common.displaytag.wrap.Encode2GB"/>
    
<display:column property="email" />
    
<display:column property="status" />
    
<display:column property="description" title="Comments" />
  
</display:table>

这样就可以正确显示中文了

总结:display从数据库中取出时并不进行转换编码,所以,我们需要进行转换,一种方式是修改其原码;另一各是

增加一个decorator方式,但对于前者,危险系统比较大,后者较安全,也更合理。

ps: 如果增加一个标签:如 srcEncode=??? desEncode=???这样的话,可以不再编写deocoader方式,更方便一些,如有兴趣,读者不妨试试,我也会在近期推出我的研究。

 

displaytag分页中文处理

displaytag参考: http://blog.sina.com.cn/s/blog_6b184a840100lavn.html http://www.knowsky.com/1045905....
  • lovelovelovelovelo
  • lovelovelovelovelo
  • 2017年05月18日 10:20
  • 345

数据表格显示标签 - DisplayTag - 使用简单实例

displaytag是最常用的数据表格显示标签之一.官方网址: http://displaytag.sf.net 下载地址: http://sourceforge.net/project/showf...
  • kalision
  • kalision
  • 2014年11月06日 13:21
  • 1543

displaytag 中文问题 探索日志 注释

重新上路: displayTagSupport库中: itext-1.3.jar commons-lang-2.6.jar standard.jar commons-beanutils-...
  • pianistOfSoftware
  • pianistOfSoftware
  • 2016年07月13日 13:08
  • 540

Display 标签的使用与分页出错/汇出中文乱码

一、简介     可以呈现如table的格式,自行设定排序、分页、导出...等。 二、使用步骤     (1)下载jar包,放到WEB-INF/lib下,另外还需2个辅助包:apache的 commo...
  • EvelynHouseba
  • EvelynHouseba
  • 2013年09月02日 16:08
  • 1326

displaytag添加自定义跳转页数功能

displaytag添加自定义跳转页数功能
  • diaomeng11
  • diaomeng11
  • 2016年10月31日 22:09
  • 485

DisplayTag工具类,转自谷歌论坛

import java.awt.image.Raster; import java.io.File; import java.io.IOException; import java.sql.Time;...
  • gyhcsdn1995
  • gyhcsdn1995
  • 2017年05月26日 18:12
  • 253

display tag 标签分页实例

找到display tag 所需jar 编写实体类UserInfo.java 1 2 3 4 5 6 7 ...
  • a1101282836
  • a1101282836
  • 2015年11月16日 16:13
  • 273

JAVA中文乱码问题的产生和建议解决办法

开发java应用出现乱码是很常见的,毕竟现在unicode的使用还不是很广泛,在使用gb2312(包含了gbk简体,big5繁体)的系统中要正确  实现中文的display和数据库的存储是最基本的要...
  • LVGAOYANH
  • LVGAOYANH
  • 2015年08月02日 12:08
  • 4420

解决JSP中文乱码问题

原文:http://www.cnblogs.com/chengkai/articles/2171848.html 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把J...
  • luoweifu
  • luoweifu
  • 2014年03月25日 23:46
  • 4073

Displaytag实现分页

分页有两种实现方式:一种是前台分页;另一种是后台分页,即使用分页查询语句来实现。 本文主要使用Displaytag实现前台分页 必要的jar包:displaytag-1.1.1.jar 必要的模板...
  • quniandongtian
  • quniandongtian
  • 2014年02月04日 14:58
  • 825
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:displaytag 中文问题
举报原因:
原因补充:

(最多只允许输入30个字)