![在此处输入图像描述][1]
当我单击一个按钮时,谁能解释我如何使用spring 3.x实现此输出@ResponseBody 注释...
尝试@ResponseBody
像这样编写您的方法
@ResponseBody
@RequestMapping(value ="/txt" )
public String txtResponse(HttpServletResponse response){
String fileName = "a.txt";
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
String content = "This is txt content";
return content;
}
这看起来非常类似于: Spring MVC 3 Return Content-Type: text/plain and Who sets response content-type in Spring MVC (@ResponseBody)
您应该能够通过 @RequestMapping 设置响应的 Content-Type 标头:
@RequestMapping(..., produces = org.springframework.http.MediaType.TEXT_PLAIN)
这需要客户端传入一个 Content-Type 标头来匹配。
或者通过在服务方法中直接在响应对象上设置标头,例如:https ://stackoverflow.com/a/5268157/1546662 。
或者通过在 spring 上下文中添加一个新的消息转换器,如:https ://stackoverflow.com/a/3617594/1546662
一个更好的解决方案似乎
public ResponseEntity<Resource> exportTemplate() throws IOException {
return ResponseEntity.ok().header("Content-Disposition", "inline;filename=" + "filename.txt")
.body(new ByteArrayResource(new pojoObject()));
}