springmvc+mybatis 处理图片(二):显示图片
数据库及配置文件等参考:springmvc+mybatis 处理图片(一):上传图片
思路:把图片二进制信息写入到HttpServletResponse 的outputStream输出流中来显示图片。一个Controller来返回页面,另一个Controller来显示图片
1. NewsController.java(显示除了图片之外的新闻信息)
//获取所有新闻 @RequestMapping(value="/htNews") public String htNews(Model model) { // 获得所有news集合 List<News> news_list = fdyfzxService.getAllNews(); // 将news集合添加到model当中 model.addAttribute("news_list", news_list);//htNews.jsp中使用${requestScope.news_list }获取news列表 // 跳转到main页面 return "htNews"; }
2. NewsController.java(显示图片)
/**获取新闻的图片 * @Param id 新闻id */ @RequestMapping(value="newsPic") public void newsPic(String id, HttpServletResponse response, Model model){ News news = fdyfzxService.findNewsById(Integer.parseInt(id)); byte[] newsPic = news.getNewsPic(); try { OutputStream outputStream=response.getOutputStream(); InputStream in=new ByteArrayInputStream(newsPic); int len = 0; byte[] buffer = new byte[1024]; while((len=in.read(buffer, 0, 1024)) != -1){ outputStream.write(buffer, 0, len); } outputStream.close(); } catch (Exception e) { e.printStackTrace(); } }
3. htNews.jsp(显示新闻信息)
<img src="${ctx }/newsPic?id=${news.newsID }" height="100" width="100"/>
<!--其他代码省略-->
效果如图