问题:前台通过ajax传递时间参数到后台查询报错400
原因:前台传时间若不选择为空字符串,后台对象中属性为timeStamp格式
解决:后台代码通过request获取参数
前台代码:
//导出Excel
function excelOut() {
$.ajax({
type: "POST",
url: "/manage/order/download",
data: {
mainorderNum: $("#mainorderNum").val(),
phone: $("#phone").val(),
deliveryState: $("#deliveryState").val(),
orderType: $("#orderType").val(),
orderState: $("#orderState").val(),
startTime: $("#startTime").val(),
endTime: $("#endTime").val(),
goodsId: $("#ddGoods").val()
},
dataType: "json",
success: function (data) {
if (data.res == 1) {
alert("导出成功")
}else{
alert("导出失败")
}
}
});
}
原controller代码(报错代码)
/**
* 下载文件
*
* @param
* @return
*/
@RequestMapping(value = "download", method = RequestMethod.POST)
@ResponseBody
public String downloadExp(DdOrderVo ddOrderVo, HttpServletRequest request) {
int resmsg=0;
try {
Page<DdOrderVo> page = new Page<>();
page.setPageSize(99999);
page.setPageNum(1);
Page<DdOrderVo> list = ddOrderService.findByPage(ddOrderVo, page);
List<ExcelSheetPO> excelSheets = new ArrayList<>();
ExcelSheetPO excelSheetPO = new ExcelSheetPO();
List<List<Object>> datalist = new ArrayList<>();
List<Object> firstline = new ArrayList<>();
firstline.add(0,"主订单号");//mainorderNum
firstline.add(1,"买家姓名");//addressee
firstline.add(0,"买家电话");//phone
firstline.add(0,"买家地址");//province city district address
firstline.add(0,"订单商品");//goodsName goodsNum
firstline.add(0,"快递类型");//expressType
firstline.add(0,"面单号");//slogisticCode
datalist.add(firstline);
for(DdOrderVo d :list.getResults()){
List<Object> line = new ArrayList<>();
firstline.add(0,d.getMainorderNum());//mainorderNum
firstline.add(1,d.getAddressee());//addressee
firstline.add(0,d.getPhone());//phone
firstline.add(0,d.getProvince()+d.getCity()+d.getDistrict()+d.getAddress());//province city district address
List<DdOrderGoodsVo> glist = new ArrayList<>();
String gString ="";
for(DdOrderGoodsVo g : glist){
gString+=g.getGoodsName()+"("+g.getGoodsNum()+")";
}
firstline.add(0,gString);//goodsName goodsNum
firstline.add(0,d.getExpressType());//expressType"快递类型"
firstline.add(0,d.getSlogisticCode());//slogisticCode"面单号"
datalist.add(line);
}
excelSheetPO.setDataList(datalist);
String filePath = "C://excelOut.xls";
createWorkbookAtDisk(V2003, excelSheets,filePath);
flag = "01";//上传成功
} catch (Exception e) {
flag = "03";//上传出错
e.printStackTrace();
}
return (resmsg+"");
}
新cointroller代码
/**
* 下载文件
*
* @param
* @return
*/
@RequestMapping(value = "download", method = RequestMethod.POST)
@ResponseBody
public String downloadExp( HttpServletRequest request) {
// 判断文件是否为空
String flag = "02";//上传标志
int resmsg=0;
DdOrderVo ddOrderVo = new DdOrderVo();
//获取查询参数
String mainorderNum = request.getParameter("mainorderNum");
String phone = request.getParameter("phone");
String deliveryState = request.getParameter("deliveryState");
String orderType = request.getParameter("orderType");
String orderState = request.getParameter("orderState");
String startTime = request.getParameter("startTime");
String endTime = request.getParameter("endTime");
String goodsId = request.getParameter("goodsId");
try {
if (mainorderNum != null && mainorderNum != "") {
ddOrderVo.setMainorderNum(Long.parseLong(mainorderNum));
}
ddOrderVo.setPhone(phone);
if (orderState != null && orderState != "") {
ddOrderVo.setOrderState(Integer.parseInt(orderState));
}
if (goodsId != null && goodsId != "") {
ddOrderVo.setGoodsId(Long.parseLong(goodsId));
}
if (orderType != null && orderType != "") {
ddOrderVo.setOrderType(Integer.parseInt(orderType));
}
if (deliveryState != null && deliveryState != "") {
ddOrderVo.setDeliveryState(Integer.parseInt(deliveryState));
}
if (startTime != null && startTime != "") {
ddOrderVo.setStartTime(Timestamp.valueOf(startTime));
}
if (endTime != null && endTime != "") {
ddOrderVo.setEndTime(Timestamp.valueOf(endTime));
}
Page<DdOrderVo> page = new Page<>();
page.setPageSize(99999);
page.setPageNum(1);
Page<DdOrderVo> list = ddOrderService.findByPage(ddOrderVo, page);
List<ExcelSheetPO> excelSheets = new ArrayList<>();
ExcelSheetPO excelSheetPO = new ExcelSheetPO();
List<List<Object>> datalist = new ArrayList<>();
List<Object> firstline = new ArrayList<>();
firstline.add(0,"主订单号");//mainorderNum
firstline.add(1,"买家姓名");//addressee
firstline.add(0,"买家电话");//phone
firstline.add(0,"买家地址");//province city district address
firstline.add(0,"订单商品");//goodsName goodsNum
firstline.add(0,"快递类型");//expressType
firstline.add(0,"面单号");//slogisticCode
datalist.add(firstline);
for(DdOrderVo d :list.getResults()){
List<Object> line = new ArrayList<>();
firstline.add(0,d.getMainorderNum());//mainorderNum
firstline.add(1,d.getAddressee());//addressee
firstline.add(0,d.getPhone());//phone
firstline.add(0,d.getProvince()+d.getCity()+d.getDistrict()+d.getAddress());//province city district address
List<DdOrderGoodsVo> glist = new ArrayList<>();
String gString ="";
for(DdOrderGoodsVo g : glist){
gString+=g.getGoodsName()+"("+g.getGoodsNum()+")";
}
firstline.add(0,gString);//goodsName goodsNum
firstline.add(0,d.getExpressType());//expressType"快递类型"
firstline.add(0,d.getSlogisticCode());//slogisticCode"面单号"
datalist.add(line);
}
excelSheetPO.setDataList(datalist);
String filePath = "C://excelOut.xls";
createWorkbookAtDisk(V2003, excelSheets,filePath);
flag = "01";//上传成功
} catch (Exception e) {
flag = "03";//上传出错
e.printStackTrace();
}
return (resmsg+"");
}```