0

リソースを .jsp にマップするだけのこのSpringメソッドがあります。

@ResourceMapping(value = "display")
public String displayResult() {

  return "mypage"

}

メソッドを次のように更新すると:

@ResourceMapping(value = "display")
public String displayResult(javax.portlet.ResourceResponse rr) {

  rr.setContentType("text/html;charset=UTF-8");    
  return "mypage"

}

変数 rr は初期化されていますが、オブジェクト javax.portlet.ResourceResponse を初期化するためにバックグラウンドで発生している Spring の「魔法」は何ですか?

4

2 に答える 2

0

Aaron が指摘したように、彼が提供したリンクで説明されているハンドラー メソッドの引数を解決するためのデフォルトのルールがあります。

ただし、ハンドラーメソッドが他のタイプのパラメーターを受け入れるようにすることは、 @ResourceMapping アノテーションを拡張することによってではなく、Spring 3.1 より前の新しい WebArgumentResolver と 3.1 から HandlerMethodArgumentResolver を実装することによって実現されます。http://docs.spring.io/spring/docs/3.1.x/javadoc-api/org/springframework/web/method/support/HandlerMethodArgumentResolver.htmlを参照してください 。

あなたの場合、javax.portlet.ResourceResponse はおそらく Spring Web mvc ポートレット フレームワークによって直接サポートされていますが、これに関するドキュメントは見つかりませんでした。IDE では、HandlerMethodArgumentResolver (または WebArgumentResolver) を実装するすべてのクラスを見ることができます。

于 2013-10-17T07:09:02.707 に答える