【问题标题】:Unable to display image in UI with Spring MVC 3.0无法使用 Spring MVC 3.0 在 UI 中显示图像
【发布时间】:2013-04-23 12:41:41
【问题描述】:

嗨,我无法在 UI 中显示图像。在控制器中,我将图像作为字节 [] 存储为我的 MySQL 表中的 BLOB。但在 jsp 中 iam 无法显示相同的内容。

我的代码看起来像 模型对象:

类电影{ 私有字节[] newMovieImage; …… }

在我的控制器中,我在 DAO 中将图像作为 byte[] 获取为电影对象

Movie movieInformation = movieService.getMovieInformationForUserSelection(selectedMovie,locationName);
    movieForm.setMovie(movieInformation);

在movieInformation 对象中,我拥有与电影相关的所有详细信息(包括图像)

在 Jsp 中:

<form:form modelAttribute="movieForm" id="movieForm" name="movieForm">  
   <div class="ticket_mov_review_rev">
   <a href="booking.html">  <img src="<c:url value="${movieForm.newImage}"></c:url>" /></a>
   <div class="ticket_mov_review_rev_one">
   <br /><br />
  <p><b>Censor certificate </b>  
   </p>
    <p><b>Movie Name</b><span style="color:#00F;">
    <c:out value="${movieForm.movie.movieName}"></c:out>
     <p><b>Casting</b>
  <c:out value="${movieForm.movie.casting}"></c:out>
     <p><b>Direction</b>

【问题讨论】:

  • 请为您的代码添加一些格式

标签: spring model-view-controller


【解决方案1】:

您可以尝试将图像 byte[] 值作为@ResponseBody 返回,

@RequestMapping(method = RequestMethod.GET, value = "/image/{id}")
@ResponseBody
public byte[] getImage(@PathVariable("id") int imageId) {
    // Get the image based on the id 
    // return the image byte[] value.
}

这里的@RequestMapping 值是图像路径。所以这就是你在jsp中的方式。

<img src="yourControllerPath/image/1"/>

【讨论】:

  • 感谢您的回复。但我的情况是我有更多属性要显示在页面中,如电影名称、演员表等。使用这些值我也需要显示此图像。我只有一个控制器,它从数据库(包括图像)中获取具有所有值的电影对象。此图像以 byte[] 的形式出现,这需要在 JSP 中显示。
【解决方案2】:

试试这个(基于this post):(尽管格式必须正确)

<form:form modelAttribute="movieForm" id="movieForm" name="movieForm">  
   <div class="ticket_mov_review_rev">
   <a href="booking.html">  <img src="data:image/jpeg;base64,${movieForm.newImage}" /></a>
   <div class="ticket_mov_review_rev_one">
   <br /><br />
  <p><b>Censor certificate </b>  
   </p>
    <p><b>Movie Name</b><span style="color:#00F;">
    <c:out value="${movieForm.movie.movieName}"></c:out>
     <p><b>Casting</b>
  <c:out value="${movieForm.movie.casting}"></c:out>
     <p><b>Direction</b>

【讨论】:

  • 嗨,我正在获取如下图像的源代码 {movie.image} 值作为对象引用,如何再次转换为字节。需要帮助
  • [B@44594680 不是内容。它只是java-internal描述符......你需要在那里写字节本身(base64编码)......看看它应该是什么样子的小提琴
猜你喜欢
  • 2013-12-20
  • 2020-08-20
  • 2011-08-28
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-04
  • 2018-01-02
相关资源
最近更新 更多