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

时间:2014-12-03 13:15:09

标签: grails

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

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

2 个答案:

答案 0 :(得分:0)

你可以通过多种方式做到这一点,这里有2:

1 - 在控制器,服务或演示者中过滤所需的图像,并在.gsp中只需要访问图像变量。

2 - 使用tagLib执行此操作(未测试):

class LastImageTagLib {
    static namespace = "last"

    def image = { attr ->
        //filter your image
        def lastImage = attr.images.last()

        out << "<img class='single' src='${lastImage}' alt='Product Picture'>"
    }
}

在.gsp中:

<div class="feed-picture">
    <div class="fl">
        <last:image images="${statusMessage?.fetchProductPictureUrls()}" />
    </div>
</div>

我认为第一种选择更好。

答案 1 :(得分:0)

所以继续上面的代码我不确定列表是否&#34; fetchProductPicturesUrls&#34;是否排序。

如果是,您有几个选择。

您可以通过利用.last()方法获取列表的最后一个条目。 http://groovy.codehaus.org/groovy-jdk/java/util/List.html

OR

您可以通过在foreach循环中设置状态标志来获取列表大小并跟踪计数。 http://grails.org/doc/latest/ref/Tags/each.html

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

维护这些图像的一个好方法是创建一个域。这是我用于S3图像的示例。

class S3Image {

 Date dateCreated
 Date lastUpdated
 String imageUrl
 String imageName

 static constraints = {
    imageUrl(blank:false)
    imageName(blank:false)  
 }
}    
相关问题