我有一个控制器从外部目录(例如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