1

私の Grails アプリケーションでは、User クラスを作成しました。1 つのコントローラーでは、データベースにクエリを実行して、ユーザーが提供した情報が有効であることを確認します。次に、その User オブジェクトを別のコントローラーに渡して、さらに処理を行いたいと思います。これは可能ですか?ありがとう!

4

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