@ResponseBody注解的作用
来源:互联网 发布:java数字金字塔代码 编辑:程序博客网 时间:2024/06/06 00:01
public @ResponseBodyString surveyDataImport(@RequestParam("file") CommonsMultipartFile file,HttpServletRequest request
,HttpSession session,HttpServletResponse response) throws Exception{
InputStream is = null;
Workbook workbook = null;
String returnStr = "";
JSONObject jsonObj = new JSONObject();
String fileName = "";
boolean flag = false;
try {
if(file != null){
fileName = file.getOriginalFilename();
}else{
jsonObj.put("status", -1);
jsonObj.put("msg", "请选择文件在上传...");
return jsonObj.toString();
}
//高版本excel文件处理
is = file.getInputStream();
workbook = new XSSFWorkbook(is);
flag = true;
} catch (Exception e) {
if(workbook == null){//低版本excel文件处理
is = file.getInputStream();
workbook = new HSSFWorkbook(is);
flag = true;
}
}finally{
if(!flag || workbook == null){
jsonObj.put("status", -1);
jsonObj.put("msg", "该上传文件解析失败,请选择重新上传...");
return jsonObj.toString();
}
if(is != null){
is.close();
}
}
logger.info("该excel文件【"+ fileName +"】数据开始导入,请稍等...");
returnStr = serveyDataImportService.eduSurveyDataImport(workbook, fileName);
return returnStr;
}
当时实现的是将excel文件上传,并解析其内容,将excel内容存入数据库中的功能;和前端协商返回数据类型为{"status", -1,"msg", "该上传文件解析失败,请选择重新上传..."}这种格式的json字符串。但是调断点调试时发现返回的字符串前端无法收到,前端排查问题发现报500的错,经后面检查分析发现少了@ResponseBody注解。。
@ResponseBody注解作用:
相当于将controller中将controller的方法返回的对象returnStr通过适当的转换器转换为指定的格式之后,写入到response对象的body区。其作用等价于response.getWriter.write(returnStr);
下面引用一个在网上查到的简单明了的demo解释:
@RequestMapping("/login")
@ResponseBody
public User login(User user){
return user;
}
User字段:userName pwd
那么在前台接收到的数据为:'{"userName":"xxx","pwd":"xxx"}'
效果等同于如下代码:
@RequestMapping("/login")
public void login(User user, HttpServletResponse response){
response.getWriter.write(JSONObject.fromObject(user).toString());
}
值得注意的一个问题是surveyDataImport方法签名中不能在使用@ResponseBody或者HttpServletResponse response时之后,还使用PrintWriter out,否则会报错。
- @ResponseBody注解的作用
- @responseBody注解的作用
- @ResponseBody注解的作用
- @Responsebody注解的作用
- springmvc的@ResponseBody注解的作用。
- Spring Mvc 的@ResponseBody注解的作用
- @ResponseBody和@ResquestBody注解的作用
- Spring中Responsebody注解的作用
- Spring中Responsebody注解的作用
- @requestBody and @responseBody注解作用
- springMVC的@responsebody注解.
- @responseBody注解的使用
- @responseBody注解的使用
- @responseBody注解的使用
- @responseBody注解的使用
- @ResponseBody注解的使用说明
- @responseBody注解的使用
- responseBody注解的使用
- 结构体struct
- Java同步注解(Annotation)解释
- Above Average
- javascript-基础1
- 随想录:开发一流Android SDK
- @ResponseBody注解的作用
- eclipse搜索关键字
- 地图相关
- Hadoop/MapReduce移动平均:时间序列数据平均值
- 自定义view实现未读消息提示(小红点)
- IONIC3 input调用手机键盘搜索
- Linux实现SSH免密码登陆
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink实战基础0016--IDEA搭建非maven管理的集成开发环境001
- java中string和int互相转化