jeecg框架查询后导出excel数据为空问题解决

版权声明:本文为博主原创文章,未经博主允许不得转载! https://blog.csdn.net/bojinyanfeng/article/details/84999972

问题描述:经过查询条件(中文参数)进行查询后,datagrid列表是有数据的,点击导出后发现excel文件没有数据。具体情况参考下图:

通过查看前端js代码发现有做条件拼接处理,并且也对条件进行了中文转码encodeURI()。

/**
 * 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);
}

然后通过后台打断点进行查看接收的参数,即可得知是中文乱码的问题。

解决方法其实就是后台对条件进行转码就可以了。

后台解决方法如下所示:

	public String exportXls(CourseEntity course,HttpServletRequest request,HttpServletResponse response
			, DataGrid dataGrid,ModelMap map) {
		//2018年12月14日11:19:41 add  cyf 条件中文乱码处理  strat
		try {
			if(StringUtil.isNotEmpty(course.getTeacher().getName())){
				TeacherEntity t= course.getTeacher();
				t.setName(new String(course.getTeacher().getName().getBytes("ISO8859-1"), "UTF-8"));
				course.setTeacher(t);
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		//2018年12月14日11:19:41 add  cyf 条件中文乱码处理  end
        CriteriaQuery cq = new CriteriaQuery(CourseEntity.class, dataGrid);
        org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, course, request.getParameterMap());
        List<CourseEntity> courses = this.courseService.getListByCriteriaQuery(cq,false);

        map.put(NormalExcelConstants.FILE_NAME,"用户信息");
        map.put(NormalExcelConstants.CLASS,CourseEntity.class);
        map.put(NormalExcelConstants.PARAMS,new ExportParams("课程列表", "导出人:Jeecg",
                "导出信息"));
        map.put(NormalExcelConstants.DATA_LIST,courses);
        return NormalExcelConstants.JEECG_EXCEL_VIEW;

	}

猜你喜欢

转载自blog.csdn.net/bojinyanfeng/article/details/84999972