У меня есть следующий код (это метод в контроллере), чтобы загрузить вложение / документ:
@RequestMapping(value="downloadattachment.htm",method=RequestMethod.GET)
public ResponseEntity<Blob> downloadAttachment(@RequestParam("attachmentid")
int attachmentId){
//Attachment is a POJO.
Attachment attachment= commonDao.getAttachment(attachmentId);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(new MediaType(attachment.getContentType()));
responseHeaders.set("Content-Disposition",
"attachment; filename=\"" + attachment.getFileName() +"\"");
return new ResponseEntity<Blob>(attachment.getFileData(), responseHeaders, HttpStatus.CREATED);
}
Когда я запускаю это, выдает следующую ошибку:
The request sent by the client was syntactically incorrect ().
Я использую плитки, поэтому мой распознаватель вида:
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
Относится ли это каким-либо образом к плиткам, поскольку разрешение всех видов происходит через определение плиток?
Но я думаю (в соответствии со ссылками на пружину), когда используется @ResponseBody
или ResponseEntity<T>
, возвращаемый тип метода-обработчика записывается прямо в тело ответа HTTP (а не помещается в модель или интерпретируется как посмотреть имя).