关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 8006|回复: 0

[EasyPOI] excel导出功能汉字查询条件乱码

[复制链接]
发表于 2016-11-16 11:03:29 | 显示全部楼层 |阅读模式
文件路径:src\main\webapp\plug-in\tools\curdtools_zh-cn.js
原代码为
/**
* Jeecg Excel 导出
* 代入查询条件
*/
function JeecgExcelExport(url,datagridId){
        var queryParams = $('#'+datagridId).datagrid('options').queryParams;
        $('#'+datagridId+'tb').find('*').each(function() {
            queryParams[$(this).attr('name')] = $(this).val();
        });
        var params = '&';
        $.each(queryParams, function(key, val){
                params+='&'+key+'='+val;
        });
        var fields = '&field=';
        $.each($('#'+ datagridId).datagrid('options').columns[0], function(i, val){
                if(val.field != 'opt'){
                        fields+=val.field+',';
                }
        });
        window.location.href = url+ encodeURI(fields+params);
}
前端将汉字查询条件通过encodeURI转码为UTF-8,后台通过过滤器设置request对象编码方式为UTF-8,可是最终Controller接到的参数是用ISO8859-1编码的,会出现乱码问题,弄了很久也找不到原因,干脆改一下前端提交的方式,改为手动拼form表单,post提交,这是最保险的方式,代码如下:
function JeecgExcelExport(url,datagridId){
        var queryParams = $('#'+datagridId).datagrid('options').queryParams;
        var formStr = '<form action="'+url+'" method="post">';
        $('#'+datagridId+'tb').find('*').each(function() {
            queryParams[$(this).attr('name')] = $(this).val();
        });
        $.each(queryParams, function(key, val){
                formStr += '<input name="'+key+'" type="hidden" value="'+val+'">';
        });
        var fields = '';
        $.each($('#'+ datagridId).datagrid('options').columns[0], function(i, val){
                if(val.field != 'opt'){
                        fields+=val.field+',';
                }
        });
        formStr += '<input name="field" type="hidden" value="'+fields+'">';
        formStr += '</form>';
        $(formStr).appendTo('body').submit().remove();
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表