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)
}
}