gpt4 book ai didi

image - 如何使用spring mvc显示mysql数据库中的图像

转载 作者:行者123 更新时间:2023-12-01 23:10:54 26 4
gpt4 key购买 nike

我使用 Spring MVC 将 BLOB 类型图像存储在 MySQL 数据库中,用于项目类 Item(itemId、itemName、itemPrice、itemContent、itemImage)。我成功地将图像存储在数据库中,但是当我尝试在 jsp 中显示它时,它显示类似 [B@7fb0c025.

的二进制文件。

如何在JSP中显示正确的图像(图像存储在MySQL数据库表中)

我的模型类:

@Entity
@Table(name="item")
public class Item {

@Id
@Column(name="ItemId")
@GeneratedValue
private Integer itemId;

@Column(name="ItemName")
private String itemName;

@Column(name="ItemContent")
private String itemContent;
/*
@Column(name="ItemImage")
private ByteArray ItemImage;
*/
@Column(name="ItemPrice")
private int itemPrice;

@Column(name="ItemImage")
private byte[] itemImage;

“addItem.jsp”添加项目属性以及数据库中的图像。

<form:form modelAttribute="itemAttribute" enctype="multipart/form-data" method="POST" action="${Url}">
<table>

<tr>
<td><form:label path="itemId"></form:label></td>
<td><form:input path="itemId" type="hidden"/></td>
</tr>

<tr>
<td><form:label path="itemName">ItemName:</form:label></td>
<td><form:input path="itemName"/></td>
</tr>
<tr>
<td><form:label path="itemPrice">ItemPrice:</form:label></td>
<td><form:input path="itemPrice"/></td>
</tr>
<tr>
<td><form:label path="itemContent">ItemContent:</form:label>
<td><form:input path="itemContent"/>
</tr>
<tr>
<form:label for="itemImage" path="itemImage">itemImage:</form:label>
<form:input path="itemImage" type="file" />
</tr>
</table>

<input type="submit" value="Save" />
</form:form>

用于与图像一起显示项目属性的 JSP 页面。 类别ID:

    <tr>
<td><form:label path="categoryName">CategoryName:</form:label></td>
<td><form:input path="categoryName"/></td>
</tr>
</table>
<input type="submit" value="Save" />

<table width: 100%; text-align:center">
<tr>
<th>ItemId</th>
<th>ItemName</th>
<th>ItemPrice</th>
<th>ItemFeatures</th>
<th>Edit</th>
<th>Delete</th>
<th>ItemImage</th>
</tr>
<tbody>


<c:forEach items="${categoryAttribute.item}" var="item">
<tr>
<c:url var="editCUrl" value="/item/edit?bid=${categoryAttribute.categoryId}&cid=${item.itemId}" />
<c:url var="deleteCUrl" value="/item/delete?id=${item.itemId}" />
<td><c:out value="${item.itemId}" /></td>
<td><c:out value="${item.itemName}"/></td>
<td><c:out value="${item.itemPrice}"/></td>
<td><c:out value="${item.itemContent}"/></td>
<td><a href="${editCUrl}">EditItem</a></td>
<td><a href="${deleteCUrl}">DeleteItem</a></td>
<td><c:out value="${item.itemImage}"/></td>
</tr>
</c:forEach>

如何正确显示数据库中存储的图像?我想我在 JSP 中显示这样的图像是错误的。 但是如何在 JSP 中显示这里的图像呢?

最佳答案

我终于能够在我的 jsp 上显示图像了。我做了什么。

我单独创建了一个这样的 Controller 。

@Controller
@RequestMapping("/myImage")
public class ImageController {

@Resource(name="categoryService")
private CategoryService categoryService;

@Resource(name="itemService")
private ItemService itemService;

@RequestMapping(value = "/imageDisplay", method = RequestMethod.GET)
public void showImage(@RequestParam("id") Integer itemId, HttpServletResponse response,HttpServletRequest request)
throws ServletException, IOException{


Item item = itemService.get(itemId);
response.setContentType("image/jpeg, image/jpg, image/png, image/gif");
response.getOutputStream().write(item.getItemImage());


response.getOutputStream().close();

在jsp中我这样做了

<img src="/Project1/myImage/imageDisplay?id=${item.itemId}"/>

图像已成功显示。

关于image - 如何使用spring mvc显示mysql数据库中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com