質問 -
私がテストした一部のアプリケーションでは、アクション送信から別のビュー/コントローラーへの呼び出しがあることに気付きましたが、そのページがレンダリングされると、次のように表示されません。
$コントローラ/$ページ
そうですか:
$コントローラー/インデックス
これは URL マッピング構成の問題ですか? デフォルトのアクション? 実際のアクションではなく、デフォルトへの URI マッピングのように見えるだけなので、ちょっと興味があります。
ビューコード:
<table>
..
<g:actionSubmit class="stats" action="stats" value="View Stats"/>
..
</table
コントローラ:
def stats() {
def teamId = Team.get(params.id)
def allPlayers = Player.withCriteria {
eq('team', teamId)
and {
eq('isActive', true)
}
}
[allPlayers:allPlayers, teamId:params.id]
}
URL マッピング:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
}
編集
私は実際にそれが何であるかを理解しました。それは私をさらに混乱させます。
grails の actionSubmit にはアクションが関連付けられています。そのフォームは、呼び出しのない通常のフォームでした。
<g:form>
<g:actionSubmit class="stats" action="stats" value="View Stats"/>
<g:actionSubmit class="schedule" action="schedule" value="View Schedule"/>
<g:form>
したがって、デフォルトでは、フォームはアクションを $controller/index にリダイレクトします。g:form タグにアクション コールを追加すると、これら 2 つのボタンは正しいページに移動しますが、URI は $controller/$g:form_action になります。
g:form がラッパーとして必要な場合、actionSubmit のアクションの要点がわからないと思います。