1

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

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"
}
4

2 回答 2

2

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

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

请参阅有关数据 URI 编码方案的 Wikipedia 页面

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

于 2012-12-22T11:33:49.087 回答
1

您可以执行与此答案相同的操作。

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

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

但这是不寻常的——将图像存储为byte[]. 您应该考虑将其更改为String指示图像的路径/文件名。

于 2012-12-22T11:26:11.323 回答