2011-02-04 7 views
3

Spring Controllerメソッドのロジックに応じて、同じメソッド内でHTMLまたはJSONを返す正しい方法が不思議です。私は.NETでこれを行いましたが、Springでこれを行う方法を知る必要があります。Spring ControllerメソッドのHTMLまたはJSONを返す

UserModel user = new UserModel();  
    user.setFirstName("Michael"); 
    user.setLastName("Flynn"); 

    model.getList().add(user); 
    model.setSearchTerm("test"); 

    if(true) 
    { 
     return new ModelAndView("controls/tables/users", "model", model); 
    } 
    else 
     return model; 
+0

このスレッドのアップデートはありますか?任意の受け入れ可能なanwers? – Confuser

答えて

0

私は最近、これを理解するのに必要とSpringSourceのからthisブログ記事で運を持っていました。

+0

これはJSON専用です。それは、どちらか一方を返すこと、そしてそれを行う方法については言及していません。 –

0

標準的なHTTPコンテンツのネゴシエーションを使用して、どの形式を使用するかをリクエストしていると仮定しています。もしそうなら、ContentNegotiatingViewResolverを使うことができます。例えば、http://localhost/content.jsonはJSONを選択し、http://localhost/content.htmlはHTMLを選択するなど、URLの「拡張子」を使用してフォーマットの選択をサポートしています。

+0

ユーザーが望むものが分かっていれば、それは素晴らしいことです。しかし、エラーが発生したかどうかに応じてHTMLまたはJSONを返す必要があります。 HTMLを返すことは基本的に成功ですが、JSONを返すとエラーが発生したことを意味します。私はそれがHTMLかJSONかどうかテストするクライアント側の両方の状況を処理するjavascriptを持っています。私は.NETで同じことをしたので、クライアントサイドのJavaScriptがうまくいきます。私の質問は、出力を決定する要求のコンテンツタイプではありません。 –

+0

あなたのコントローラからModelAndViewを返します。ここで、ViewはJSTLView(または使用しているHTMLテンプレート言語に適したビュー)またはMappingJacksonJsonViewのエラーです。 – sourcedelica

+0

コードでこれを行う例がありますか?私は、JsonViewと呼ばれるflexjsonをサブクラス化して、私が必要とするものを行うことを検討しています。 –

関連する問題