1

ドメインオブジェクトからの画像をウェブフローに表示したい。

ドメインオブジェクトには、画像を保持するbyte[]配列があります。コントローラの「image」メソッドは、画像をブラウザに配信します。これは正常に機能します。

私のウェブフローでは、これを行っています:

<img src="${createLink(controller:'shop', action:'image', id:shopInstance.id)}">

フロントエンド(ブラウザ)で画像を見ることができますが、画像のURLにWebflowの各イベントを変更するパラメータが含まれているため、[次へ]をクリックするかWebFlowの状態を変更するたびに画像が再読み込みされます。

作成された画像のURL(上記の例)は次のようになります。

http://localhost:8080/project/shop/image/2?execution=e2s5

実行パラメータが画像のURLに配信されることを望まない。どうすればこれを修正できますか?

4

3 に答える 3

2

私の推測では、これはバグです。私が使用した回避策は次のとおりです

${createLink(controller: 'controller', action: 'action').replaceAll(/\?.*$/, "")}

これは、正規表現を使用して実行パラメーターを削除します。

于 2013-09-16T18:53:02.090 に答える
1

その実行パラメータを取得している理由はわかりませんが、試してみることができ<img src="${resource(dir: 'shop/image', file: shopInstance.id)}">ます。UrlMappings.groovyファイルに「ship/image」の適切なコントローラーへのマッピングがあることを確認してください。

于 2012-07-27T21:08:13.100 に答える
1

Grails 2.0.4の時点で、ApplicationTagLib.groovyを見てください。

if (request['flowExecutionKey']) {
    params."execution" = request['flowExecutionKey']
    urlAttrs.params = params
    if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) {
        urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName
    }
}

そのため、Grailsは、Webflow内でレンダリングされたすべてのリンクに、その実行パラメーターを含めるように強制しています。私にはバグのように見えます。

于 2012-08-16T10:53:50.520 に答える