3

LinkedIn API を介してユーザー モデルにさらに情報を追加しています。このコードはすべてコントローラーで処理されます。情報がモデルに追加されたら、(User クラスの) フォームを新しいビューで再レンダリングします。API 呼び出しによって更新されたフィールドを表示するために、このフォーム (Play に組み込まれています!) に追加情報を添付する方法はありますか?

使用事例:

  1. ユーザーがプロファイルの表示/編集ページに入る

  2. ユーザーが「LinkedIn から情報をインポートする」をクリックする

  3. LinkedIn API に対して API 呼び出しが行われます。その後、ユーザーは特定のコントローラー (ソーシャルと呼ばれる) に戻されます。このコントローラーは、データの JSON から JAVA への変換を処理し、新しいデータをユーザー モデルにバインドし、更新されたモデルをデータベース。

  4. 次に、コントローラーはユーザーを index() コントローラーにリダイレクトし、ビュー/編集プロファイル ビューを再度レンダリングします。(ここで、API 呼び出しによってプロファイルのどのフィールドが変更されたかをユーザーが確認できる機能を追加したいと思います)。

たとえば、form.errrors()(form.info()などと呼ばれる)に似たもの。これが不可能な場合、FieldElements にアクセスして何かを追加する方法はありますか?

乾杯!

4

1 に答える 1

2

問題がはっきりとわかりません。

コントローラーがユーザーをプロファイル ページにリダイレクトするときは、フォームにデータベースのデータを入力するだけです。

そんな感じ:

public static Result profile(String userId) {
    Form<User> userForm = form(User.class);

    User user = User.findById(userId); // data have been set in the database
    if (user != null) {
         userForm = userForm.fill(user);
    }

    return redirect(your.view.render(userForm));
}
于 2012-07-23T11:56:45.180 に答える