Comment afficher l'image de la base de données mysql en utilisant spring mvc
Je suis le stockage d'objets BLOB type d'image dans la base de données MySQL à l'aide de Spring MVC pour la classe de l'élément de l'Élément (itemId, itemName, itemPrice, itemContent, itemImage). J'ai réussi à faire une image stockée dans la base de données mais quand j'essaie de l'afficher dans ma page jsp, c'est présenter quelque chose de binaire comme [B@7fb0c025.
Comment puis-je afficher la bonne image en JSP (l'image est stockée dans la table MySQL base de données)
Ma classe de modèle:
@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" pour ajouter les attributs d'élément avec l'image dans la base de données.
<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>
La page JSP pour afficher les attributs d'élément avec l'image.
CategoryId:
<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>
Comment puis-je afficher correctement l'image qui est stockée dans la base de données? Je suppose que je suis en train de faire du mal par l'affichage de l'image comme ceci dans la JSP.
Mais comment puis-je afficher une image, ici en JSP?
source d'informationauteur bablu
Vous devez vous connecter pour publier un commentaire.
Je suis enfin en mesure d'afficher l'image sur ma page jsp.
ce que j'ai fait.
Je séparément créé un contrôleur de ce genre.
et dans la page jsp j'ai fait ce
Et l'image a bien été affiché.
J'ai écrit ci-dessous de code dans mon contrôleur, et il fonctionne très bien pour moi.
Dans mon projet, l'Utilisateur contient le Profil de l'Objet qui a photo @Lob.
Modifier ce code en fonction de vos attributs.
Dans le fichier JSP, j'ai écrit le code
Pour cela, vous avez besoin de commune-codec jar.
Aussi, vous pouvez utiliser une balise personnalisée pour montrer l'image.
Une chose que vous pouvez faire pour afficher l'image en jsp à partir de la base de données.
supposons que vous avez besoin pour afficher les images de tous les utilisateurs dans les jsp.
pour cela, vous pouvez créer votre propre custome jstl balise qui contient le code pour la conversion des octets de l'image en base64 image.
ici dans mon projet, l'image est dans le Profil de classe
je.e de l'utilisateur.getProfile().getPhoto()
créer tld fichier dans WebContent. j'ai créer un fichier dans mon taglib dossier
Maintenant, vous pouvez écrire le code de jsp pour l'affichage de l'image.
Chaque temps, pas besoin de convertir l'image dans le contrôleur vient de passer octet de l'image de jsp et de notre custome balise de convertir des octets de l'image et de l'afficher dans la page d'affichage.
Note: inclure custome fichier de balises dans le fichier jsp