私の Grails アプリケーションでは、User クラスを作成しました。1 つのコントローラーでは、データベースにクエリを実行して、ユーザーが提供した情報が有効であることを確認します。次に、その User オブジェクトを別のコントローラーに渡して、さらに処理を行いたいと思います。これは可能ですか?ありがとう!
質問する
1035 次
2 に答える
1
コントローラー間でのオブジェクトの受け渡しに関する質問については、 aredirect
または aを使用している場合forward
、パラメーター マップにオブジェクトを追加できます。
redirect(action: "actionName", user: userInstance)
また
forward(action: "actionName", user: userInstance)
別の解決策は、ユーザーをflash
オブジェクトに保存することです (次の要求の後に一時ストレージ マップがクリアされます) session
。
flash.user = userInstance
また
session.user = userInstance
ただし、あなたの場合、tim_yates で述べられているように、User エンティティを処理するサービスを作成する必要があります。これを行うには、次のコマンドを実行します。
create-service com.package.user
次に、新しく作成したクラスの User で行っているすべての処理を追加し、次のように User サービスをコントローラーに挿入します。
def controller{
def userService
def action(){
userService.validate(...)
}
}
于 2013-02-07T14:36:25.130 に答える
0
本質的に@tim_yatesが得ていたのは、すべてのコントローラーがサービスにある必要があるというロジックでした。次に、任意のコントローラーの任意のアクションで、リクエストをリダイレクト/転送せずにそのロジックを実行できます。これは、サービスのトランザクショナルな性質のため、あるべき姿でもあります。
于 2013-02-07T18:22:42.650 に答える