2

このようなものを便利に回す方法はありますか..

@RequestMapping("/some/action/{q}/...")
public void doSomething(@PathVariable("q"), oh, my, god, a, billion, annotated parameters) { .. }

このようなものに..

@RequestMapping("/some/action/{q}/...")
public void doSomething(NiceEncapsulatingRequetObject request) { .. }

Spring MVC で?

4

3 に答える 3

0

docsを確認した後、すぐにサポートされているようには見えません。この機能を提供する独自のHandlerMethodArgumentResolverを作成してみてください。HandlerMethodArgumentResolverComposite実装とインスタンスの間で循環参照が必要になるため、いくつかの問題が発生する可能性があり ます。それでも、私はそれが可能であるべきだと思います。

于 2013-01-14T08:57:33.017 に答える
0

はい、春はすぐにこれをサポートします。通常、Bean バインディングと呼ばれます。基本的に、同じ名前のパラメーターを持つオブジェクトを作成するため、パラメーター "q" がある場合、オブジェクトにはゲッターとセッターの両方が存在するプライベート文字列 q が含まれている必要があります。また、コンストラクターを使用しないことをお勧めします。

Spring は、オブジェクトにあるパラメーターを入力し、メソッドのパラメーターを介して渡します。

于 2013-01-14T09:40:43.937 に答える
0

独自のオブジェクトを作成することができNiceEncapsulatingRequetObject、その属性はString oh, Integer my等である必要があります。正確な名前でリクエストを送信すると、機能します

于 2013-01-16T11:58:13.973 に答える