使用db列作为thymeleaf中的img src

时间:2017-04-08 22:11:03

标签: java spring thymeleaf

这是我第一次在这里发帖,但是很长时间的读者。我似乎无法找到这个问题的答案,所以我想我会问。

我遇到的问题是我正在尝试从视图中的表格中显示项目列表。

我想使用其中一列保存图片来源的网址。

到目前为止,我已将它显示在哪里它将显示保存在表中的所有项目,但是我无法从imgUrl列中拔出字符串。当我使用span标签时它会显示它,但我不确定如何在图像源中产生类似的结果。

我可以得到一些帮助吗?

<div th:unless="${#lists.isEmpty(items)}">
<dl th:each="item : ${items}">
<dt class="itemInfo"> 

<label>Image URL:</label>

                <!-- here is where I try to add the image -->
<img th:src="@{item.imgUrl}"
    src="${item.imgUrl}" width="350" height="200"/>

<span th:if="${item.imgUrl}" th:text="${item.imgUrl}"></span> <br/>
<span th:if="${item.imgUrl eq null}">No image available</span> <br/>

这是我将表添加到列表并将其添加到视图

的位置
// inventory view
@GetMapping("/inventory")
public String inventory(HttpSession session, Model model) {

List<Item> itemList = item.findAll();     
if (itemList != null) {
    model.addAttribute("items", itemList);
}

boolean hasUserRole = hasUserRole();
boolean hasAdminRole = hasAdminRole();      
if (hasUserRole) {
    session.setAttribute("userrole", hasUserRole);
}
else if (hasAdminRole) {
    session.setAttribute("adminrole", hasAdminRole);
}
return "inventory";
}

2 个答案:

答案 0 :(得分:1)

问题似乎与您的图片网址有关。 img标记没有指向正确图片网址的正确src元素。 来自docs

  

如果我们将myapp.war文件部署到Tomcat服务器,我们的应用程序可能会以http://localhost:8080/myapp访问,而myapp将是上下文名称。

因此,如果您使用的是<img th:src="@{/user/image1234.jpg}">。 您的网址将被解析为<img src="/myapp/user/image1234.jpg">

您可能想在浏览器调试器中调试并重新检查最终的URL。

答案 1 :(得分:1)

是的,你是对的。我将代码更改为此

<img 
 th:attr="src=${item.imgUrl},title=${item.imgUrl},alt=${item.imgUrl}" 
            height="538" width="300"/><br/>