弹簧响应实体
2022-09-03 18:21:20
我有一个用例,我需要将PDF返回给我们生成的用户。在这种情况下,我需要做的似乎是利用响应实体,但我有一些事情不是很清楚。
- 如何重定向用户 - 让我们假装他们没有访问此页面的权限?如何将它们重定向到单独的控制器?
- 我能够设置响应编码吗?
- 我是否可以在不将 HttpResponse 作为参数引入请求映射的情况下实现这两个中的任何一个?
我使用的是Spring 3.0.5。示例代码如下:
@Controller
@RequestMapping("/generate/data/pdf.xhtml")
public class PdfController {
@RequestMapping
public ResponseEntity<byte []> generatePdf(@RequestAttribute("key") Key itemKey) {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.valueOf("application/pdf"));
if (itemKey == null || !allowedToViewPdf(itemKey)) {
//How can I redirect here?
}
//How can I set the response content type to UTF_8 -- I need this
//for a separate controller
return new ResponseEntity<byte []>(PdfGenerator.generateFromKey(itemKey),
responseHeaders,
HttpStatus.CREATED);
}
我真的不想拉动响应...到目前为止,我的控制器都没有这样做,我讨厌不得不把它带进来。