我正在尝试通过Web界面验证某些文件的内容,并使用响应启用/禁用其他一些功能…如保存按钮.我已经完成了提交和文件处理(存根)但我似乎无法让我的响应正常工作.
问题:响应时尝试让用户下载带有响应内容的文件.我想将响应传递给要处理的成功函数.
function validatecopybook() {
//submit values.
console.log("validating");
if (this.getForm().isValid()) {
this.getForm().submit({
url : 'batch/validatecopybook.json',
waitMsg : 'Validating...',
success : function(form, action) {
this.msg('Success', 'Processed file on the server');
}
});
}
}
服务器端代码:
public ModelAndView validatecopybook(HttpServletRequest request, HttpServletResponse response) throws Exception
{
// Check whether we're dealing with a multipart request
String contentHeader = request.getHeader("content-type");
boolean isMultipart = (contentHeader != null && contentHeader.indexOf("multipart/form-data") != -1);
if (isMultipart == false)
{
return Helper.errorResponse("not multipart");
}
else
{
DefaultMultipartHttpServletRequest reqM = (DefaultMultipartHttpServletRequest) request;
MultiValueMap<String, multipartfile> fileMap = reqM.getMultiFileMap();
multipartfile copyIn = fileMap.get("copy-path-in").get(0);
multipartfile copyOut = fileMap.get("copy-path-out").get(0);
}
System.out.println(response.getContentType());
response.setContentType("application/json");
ModelAndView mav = Helper.successResponse("success");
return mav;
}
ModelAndView: reference to view with name 'json'; model is {model={data={"success":true,"info":"success","dataLength":0,"data":[]}}}
有任何想法吗 ?
解决方法:
好吧我没有正确设置响应头
response.setContentType("application/json");
不够.
MappingJacksonjsonView view = new MappingJacksonjsonView();
view.setContentType("text/html");
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("success", true);
ModelAndView mav = new ModelAndView(view, responseMap);
工作正常.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。