【发布时间】:2011-05-24 02:22:21
【问题描述】:
我有一个以下映射,它检索一些“场景”细节并将其显示在 jsp 页面中。
@RequestMapping(value="/{id}",method = RequestMethod.GET)
public ModelAndView showScene(@PathVariable String id){
ModelAndView mv = new ModelAndView("/Scene/scene");
//retrieving Scene using Hibernate
Scene scene = service.getScene(Long.parseLong(id));
mv.addObject("name", scene.getName());
mv.addObject("desc", scene.getDescription());
//etc....
return mv;
}
我的问题是场景对象中的一个字段是 png 图像作为字节 [],我需要显示它。我知道我可以创建另一个控制器来处理所有 .png 扩展请求并返回字节 []。比如:
<servlet-mapping>
<servlet-name>PNGHandler</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
并将对图像的引用发送为:
mv.add("image", "image/"+scene.getId()+".png");
但是我需要在 png 控制器中再次检索 byte[],这将花费我额外的 Hibernate Transaction。我可以做些什么来保存这个事务而不是检索 byte[] 两次?
提前谢谢你。
【问题讨论】:
标签: java hibernate servlets spring-mvc