0

updateと同様に、コントローラー「X」に「updateWithHistory」という新しいアクションを作成しました。足場のedit.gspページからこのコードを使用する場合:

<span class="button"><g:actionSubmit class="save" action="updateWithHistory" value="${message(code: 'default.button.updateWithHistory.label', default: 'Persist')}" /></span>

404エラーが発生します:

The requested resource (/GPECAN/WEB-INF/grails-app/views/X/updateWithHistory.jsp) is not available.

なぜグレイルズがアクションではなくビューを探しているのかわかりません。既存のアクション(リスト、編集など)にリダイレクトされるため、そのアクションのビューは必要ありません。

これは、「更新」などのデフォルトのスキャフォールドアクションでは発生しません。何か案は?

(もちろん、「updateWithHistory.gsp」というビューを作成すると、ビューは表示されますが、アクションは実行されません...私は必死です)

4

3 に答える 3

1

コントローラにバグがある可能性があります。アクションの後、何かをレンダリングするか、リダイレクトする必要があります。スキャフォールドコントローラーコードをよく見てください。

updateWithHistoryアクションの最後に以下を追加してみてください。

render(view: "edit", model: [yourDomainInstance: yourDomainInstance])
于 2010-08-13T12:09:53.393 に答える
1

何を達成したいかによって、問題を解決する方法は2つあります。最初に知っておくべきことは、ドキュメントからの引用です。

また、このタグは、マルチパートリゾルバーに依存して、マルチパートリクエストに含まれるパラメーターを検査できることにも注意してください。Config.groovyでgrails.disableCommonsMultipartをtrueに設定してリゾルバーを無効にすると、actionSubmitは機能しません。

したがって、2つの解決策:

  1. g:formタグに「controller」属性を設定します
  2. ここで説明されているようにURLマッピングを作成します

PSブラウザで「レンダリング可能な」結果を表示したい場合は、コントローラの動的レンダリング方法を使用する必要があります:)

于 2010-08-13T11:50:33.897 に答える
0

OK、私はただ愚かです。それは私のコントローラーでキャッチされていないエラーでした。エラー状況が発生していましたが、それを処理するための特定のビューがなかったため、コントローラーは存在しないデフォルトビューにリダイレクトしようとしました。

私の愚かさとあなたの助けに感謝して本当に申し訳ありません

于 2010-08-14T08:16:26.920 に答える