4

Spring のドキュメントを読みましたが、nullを返す Spring MVC コントローラー メソッド (戻り値の型が String)の予想される動作に関する関連情報を見つけることができませんでした。

誰かが返信を提供するか、関連するドキュメントに私を導くことができますか? 別の言い方をすれば、Spring MVC コントローラー メソッドから null を返すことの利点は何でしょうか?

4

2 に答える 2

6

Spring 2 では、コントローラーから null を返したときに、Spring ディスパッチャーにビューを検索させたくないと言っていました。

これは、応答コンテンツを直接書き込んでから出力ストリームをフラッシュすることで応答を自分で処理している場合 (たとえば、ファイルのダウンロードを管理していた場合) に行いました。

null を返さなかった場合、Spring は、応答にも書き込みを試みるビューに転送し、既に書き込まれたデータを台無しにするか、応答が既にコミットされている場合は例外が発生します。

null を返すことは、Spring のビュー リゾルバーに逆戻りする方法でした。

Spring 3 では多くのことが変更されましたが、void を返す @RequestMapping アノテーション付きメソッドを使用することで同じことが取得できるようになりました。

戻り値の型が String であるのに null を返す場合、ビュー名が明示的に指定されていない場合、着信 HttpServletRequest を論理ビュー名に変換するためにデフォルトの RequestToViewNameTranslator を使用すると思います。

于 2012-11-11T21:57:43.313 に答える
0

spring mvc の戻り型 String は通常、ビュー リゾルバーを返します。これは、JSP、html、またはその他のビュー ページにすることができます。

http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/

「hi」のような通常の文字列を返したい場合、@ResponseBody アノテーションを使用してこれを行うことができます。

于 2012-11-12T11:12:02.587 に答える