2

spring-mvc では、コントローラー呼び出しのクエリは @RequestParam を使用して構築できます。値を指定しない場合、デフォルトでメソッド パラメータ名になります。

例 :

@RequestMapping("/hello")
@ResponseBody
public String hello(@RequestParam String name)
{
    return "hello "+name; 
}

にマッピングされます

/hello?name=x 

私の質問はこれです。春はどのようにこの情報をバインドしますか (またはアクセスしますか)? 実行時にパラメータ名が破棄されていませんか? paranamer のようなライブラリを使用していますか?

4

1 に答える 1

2

hereのようにクラスをコンパイルするときにデバッグを有効にしている場合にのみ機能します。その後、コンパイラは情報を保持します。

最後の春のリリースの一部として、コンストラクターを含めるようにこれを拡張しました。私には非常に不安定に思えます-デバッグオプションを追加するのを忘れると、アプリは動作しなくなります!

したがって、可能な方法の 1 つ (debug を true に設定) は、バイトコード操作を使用するように思われ、asm を使用するときにそれらを取得するこの例があります。これがSpringと同じ方法かどうかはわかりません。

于 2012-07-03T15:46:49.120 に答える