在gsp中显示字节数组

时间:2012-12-22 09:38:45

标签: grails gorm

我想遍历这个类并在表格中显示。什么是显示图像的最简单方法?

class Crop {
    static hasMany = [diseases: Disease]
    int id
    String commonName
    String scientificName
    byte[] image
}

static mapping = {
    table: 'Crops'
    commonName length : 100
    scientificName length: 100
    image sqlType: "longblob"
}

2 个答案:

答案 0 :(得分:2)

如果您不介意缺少浏览器兼容性,请使用data: uri编码:

<img src="data:image/png;base64,${crop.image.encodeBase64()}"/>

请参阅Data URI encoding scheme

上的维基百科页面

@Xeon建议使用更传统的方法,即创建一个控制器,它返回一个具有正确mime类型和字节数组作为正文的图像响应。

答案 1 :(得分:1)

你可以在this answer中做同样的事情。

或者您可以创建控制器,从您的实体提供图像数据流。在GSP上你可以写:

<img src="${request.contextPath}/imageController/actionName?id=${entity.id}" ...

但这很不寻常 - 将图像作为byte[]存储在实体中。您应该考虑将其更改为String,这将指示图像的路径/文件名。