我有一個控制器從外部目錄(例如c:\ images \ userID \ photo.png)提供圖像,而且這個控制器很好地完成了它的工作。但是,我的JSP文件中的img標籤顯示圖像圖標,而不是此控制器返回的圖像。SPRING MVC 3 - 不在JSP中顯示圖像
這裏是我的控制器:
@RequestMapping(value = "/load/{imageId}/", method = RequestMethod.GET)
public ResponseEntity<byte[]> loadImage(@PathVariable("imageId") Long imageId, HttpServletRequest request)
{
final org.springframework.http.HttpHeaders headers = new org.springframework.http.HttpHeaders();
BufferedImage image;
Photo photo = photoManager.getSinglePhoto(imageId);
headers.setContentType(MediaType.IMAGE_PNG);
try
{
if (photo == null)
{
File defaultFile = new File("c:/images/default.png");
image = ImageIO.read(defaultFile);
return new ResponseEntity<byte[]>(((DataBufferByte)image.getData().getDataBuffer()).getData(), headers, HttpStatus.CREATED);
}
File file = new File(photo.getPath());
image = ImageIO.read(file);
return new ResponseEntity<byte[]>(((DataBufferByte)image.getData().getDataBuffer()).getData(), headers, HttpStatus.CREATED);
}
catch (IOException ex)
{
return new ResponseEntity<byte[]>(null, headers, HttpStatus.NOT_FOUND);
}
}
我發現這裏閱讀其他答案,我需要在我的應用程序上下文了MessageConverter,我做到了。
這裏是我的應用程序的context.xml
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<util:list>
<bean id="byteArrayMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
</util:list>
</property>
</bean>
月食XML編輯器抱怨MethodHandlerAdapter被棄用的一部分。
JSP:
<img src="/mavenspringapp/photo/load/131/" width="128" height="128" alt="laf02.jpg">
爲什麼沒有在圖像顯示得到即使當控制器發送正確的響應(201)。提前致謝。
這春天的版本是U使用 – 2014-10-08 17:30:29
這是3.2.1.RELEASE – 2014-10-08 17:39:40
它顯示斷開的圖像圖標即使響應爲201 – 2014-10-08 18:25:07