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 エンコーディング スキームに関するウィキペディアのページを参照してください。

@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 に答える