1

![在此处输入图像描述][1]

当我单击一个按钮时,谁能解释我如何使用spring 3.x实现此输出@ResponseBody 注释...

4

3 回答 3

4

尝试@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;
}
于 2013-08-14T01:37:58.070 回答
1

这看起来非常类似于: 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

于 2013-08-13T15:10:36.863 回答
0

一个更好的解决方案似乎

public ResponseEntity<Resource> exportTemplate() throws IOException {
    return ResponseEntity.ok().header("Content-Disposition", "inline;filename=" + "filename.txt")
            .body(new ByteArrayResource(new pojoObject()));
}
于 2019-11-15T11:22:25.650 回答