Grails-如何显示上次上传的图像?

Grails-如何显示上次上传的图像?,grails,Grails,我过去常常显示多张图片,因此我使用了每个。现在我只能显示最后上传的图片。我应该如何更改代码 <g:each in ="${statusMessage?.fetchProductPictureUrls() }" var="picture"> <div class="feed-picture"> <div class="fl"> <img class="single" src="${picture }" alt="Product

我过去常常显示多张图片,因此我使用了
每个
。现在我只能显示最后上传的图片。我应该如何更改代码

<g:each in ="${statusMessage?.fetchProductPictureUrls() }" var="picture">
   <div class="feed-picture">
     <div class="fl">
       <img class="single" src="${picture }" alt="Product Picture">
     </div>
  </div>
</g:each>

您可以通过多种方式实现这一点,以下是两种:

1-在控制器、服务或演示者以及
.gsp
中过滤所需的图像,只需访问图像变量即可

2-使用标记库执行此操作(未测试):

class LastImageTagLib{
静态名称空间=“last”
def image={attr->
//过滤你的图像
def lastImage=attr.images.last()

因此,继续上面的代码,我不确定“fetchProductPicturesUrls”列表是否已排序

如果是,你有几个选择

您可以利用.last()方法获取列表的最后一个条目。

通过在foreach循环中设置status标志,可以获取列表大小并跟踪计数。

建议: 我建议将图像存储在磁盘或云中,而不是存储在数据库中

维护这些映像的一个好方法是创建一个域

class S3Image {

 Date dateCreated
 Date lastUpdated
 String imageUrl
 String imageName

 static constraints = {
    imageUrl(blank:false)
    imageName(blank:false)  
 }
}    

如何将图像存储在DB或文件系统中?@vcarvalho-fetchProductPictureUrls()返回用户加载的图片列表。我不能写这个“”或类似的东西吗?如果它是有序列表,则可以使用
src=“${statusMessage?.fetchProductPictureUrls()[size-1]}”
src=”${statusMessage?.fetchProductPictureUrls().last()}“
@vcarvalho出于某种原因,它只与?.在“last”之前-知道原因吗?可能您的
fetchProductPictureUrls()
方法返回的是null而不是空列表。请查看即使列表不是空的,它是否相关?
<div class="feed-picture">
    <div class="fl">
        <last:image images="${statusMessage?.fetchProductPictureUrls()}" />
    </div>
</div>
class S3Image {

 Date dateCreated
 Date lastUpdated
 String imageUrl
 String imageName

 static constraints = {
    imageUrl(blank:false)
    imageName(blank:false)  
 }
}