У меня есть вариант использования, когда мне нужно вернуть пользователю PDF-файл, созданный для нас. Похоже, что в этом случае мне нужно использовать ResponseEntity, но у меня есть пара вещей, которые не очень ясны.
Я с использованием 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);
}
Мне бы очень хотелось не вводить ответ ... Ни один из моих контроллеров до сих пор этого не сделал, и я бы не хотел, чтобы он вообще его вводил.