这几天做的项目遇到一个bug,功能是导出excel,用的get方法,测出了两个问题
1、传递参数为中文时乱码
2、本地正常,部署到服务器上后导出成功页面会跳转
乱码问题试了加密解密也没有效果,跳转问题记得以前貌似有人遇到过,暂时还没找到问题,就想改用post提交参数,并百度了下其他方法,试了下成功,以下为前端代码:
function postExcelFile(params, url) { //params是post请求需要的参数,url是请求url地址
var form = document.createElement("form");
form.style.display = 'none';
form.action = url;
form.method = "post";
document.body.appendChild(form);
for(var key in params){
var input = document.createElement("input");
input.type = "hidden";
input.name = key;
input.value = params[key];
form.appendChild(input);
}
form.submit();
form.remove();
}
按钮点击事件:
function exportData(){
var startInput = $("#startInput").val();
var endInput = $("#endInput").val();
var typeValue = $("#typeValue").val();
var originName= $("#originName").val();
//点击导出按钮导出excel表格:传递后台参数
var params = {
'type':typeValue,
'startInput':startInput,
'endInput':endInput,
'originName':originName
};
postExcelFile(params, "${ctx}/hottopic/downInfo");
$('#modalDialog').modal('hide');
}
乱码问题;
后台参数需要转码:
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
参考其他博客内容,也学会了这样写post方法,记录一下。
网友评论