【发布时间】:2017-10-25 17:14:00
【问题描述】:
当我尝试从产品对象中添加 Base64 中的图像时,如下所示:
<tbody>
<tr th:each="product : ${products}">
<td><img th:src="@{'data:image/png;base64,' + ${product.image}}" /></td>
<td th:text="${product.name}"></td>
<td th:text="${product.price}"></td>
<td th:if="${product.state==true}" th:text="Activo" style="color:green;"></td>
<td th:if="${product.state==false}" th:text="Bloqueado" style="color:red;"></td>
<td><a href="#" class="btn btn-info btn-xs" data-toggle="collapse" data-target="#collapse-form">Editar</a><a href="#" class="btn btn-danger btn-xs">Eliminar</a></td>
</tr>
</tbody>
{$product.image} 的值为 [B@776a398 但如果我输入 LOG.Info();这给我看based64 string。我该如何解决?
这是我的控制器:
@GetMapping("/admin/products")
public ModelAndView index(){
User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
ModelAndView mvn = new ModelAndView();
mvn.addObject("user",userServiceImpl.getOne(user.getUsername()));
List<Product> products = productServiceImpl.getAll();
for(Product product : products)
{
byte[] encode = Base64.getEncoder().encode(product.getImage());
product.setImage(encode);
LOG.info(new String(encode));
}
mvn.addObject("products",products);
mvn.setViewName(view);
LOG.info("Se ha ingresado al controlador de productos");
return mvn;
}
【问题讨论】:
-
您的记录器仅显示 base64 编码,因为您的代码执行此操作。在您的产品循环中查看
LOG.info(new String(encode)); -
理论上我认为编码显示图像,我想显示是可以的,但问题是当我把这个
参考 ${product.image} 它应该显示一些东西 las 这个 iVBORw0KGgoAAAANSUhEUgAAA58AAADpCAIAAAAs4.... 但只显示这个 [B@ 776a398
标签: hibernate spring-mvc spring-boot spring-data-jpa thymeleaf