5

我有来自数据库(mysql)的表格和显示数据。我用百里香叶。所有字段都可以,但 sb.cover 不显示 jpg(我的数据库中的 blob 列)。您有任何想法如何使用百里香将 jpg 放入网页中吗?谢谢

<tr th:each="sb, poz : ${product}">
    <td th:text="${poz.count}">1</td>
    <td th:icon="${sb.cover}"></td>
    <td th:text="${sb.title}"></td>
    <td th:text="${sb.price}"></td>
    <td ><b><a th:href="@{/details}">DETAILS</a></b></td>
    <td ><b><a th:href="@{/cart}">ADD TO CART</a></b></td>
    </tr>
4

5 回答 5

6

它对我有用:

<img class="info" th:attr="src=@{${image}}" />

其中“图像”是 base64 图像:

image = "数据:图像/png;base64,R0lGODlhlgCWAMQAAPz............

在 Spring Java 控制器中:

@RequestMapping(value = "/get_goods_detail", method = RequestMethod.GET)
public String getGoodsDetail(@RequestParam(value = "itemid") final int itemid,
                             ModelMap model) {
    // get image
    String image = "data:image/png;base64,R0lGODlhlgCWAMQAAPz8/N3d3eX.../big image

    model.addAttribute("image", image);
    return  "goods_detail";  // return name of html view with thymeleaf
}
于 2014-07-10T12:53:49.053 回答
2

我不确定这会对你有帮助......

<tr th:each="sb, poz : ${product}">
    <td th:text="${poz.count}">1</td>
   <td><img  th:attr="src=@{${sb.cover}} , title=#{background}, alt=#{background}" style="width: 150px; height: 150px;" /></td> 
    <td th:text="${sb.title}"></td>
    <td th:text="${sb.price}"></td>
    <td ><b><a th:href="@{/details}">DETAILS</a></b></td>
    <td ><b><a th:href="@{/cart}">ADD TO CART</a></b></td>
    </tr>
于 2013-08-14T08:00:31.920 回答
2

或者,您可以显示如下图像:

<img th:if="*{photo != null}" th:src="@{'data:image/jpg;base64,' + *{T(org.springframework.util.Base64Utils).encodeToString(photo)}}"/>
于 2017-01-01T17:51:50.557 回答
1

你可以做这样的事情: -
<img th:src="@{'data:image/jpeg;base64,'+${sb.encodedString}}" />

其中encodedString是图像的 byte[] 数据转换为 base64 编码字符串。

这实际上是基本的 html。检查这个问题:是否可以将二进制图像数据放入 html 标记中,然后在任何浏览器中照常显示图像?

希望有帮助

于 2013-10-13T14:55:14.723 回答
-1

此方法将 bytearray 转换为 base64 字符串,因此您可以将产品封面转换为 base64 字符串。您需要在产品类中添加:

    public String generateBase64Image()
{
    return Base64.encodeBase64String(this.getCover());
}

在网页中,您需要在网页中调用方法 generateBase64Image() :

 <img th:src="@{'data:image/jpeg;base64,'+${product.generateBase64Image()}}"  />
于 2020-06-02T19:13:40.227 回答