0

Context厳密に注釈ベース/Java のみの Spring MVC 3.2.2 構成を使用して、カスタム クラス (と呼びます) をパラメーターとして使用してコントローラー メソッドを作成しようとしています。Context現在の知識を使用して構築しHttpServletRequest、コントローラーメソッドに渡したいと思います。本質的には、コントローラーに送信される前に、リクエスト オブジェクトの周りに独自のカスタム ラッパーを作成したいと考えています。たとえば、これを達成したい:

@Controller
@RequestMapping(value = "/")
public class MainController {

    @RequestMapping(value = "/")
    public @ResponseBody
    String process(HttpServletRequest request) {
        Context context = new Context(request);
        ...
    }

}

自動的に次のように:

@Controller
@RequestMapping(value = "/")
public class MainController {

    @RequestMapping(value = "/")
    public @ResponseBody
    String process(Context context) {
        ...
    }

}

これは可能ですか?HandlerMethodArgumentResolvera を aとして実装することを検討しました@Beanが、WebMvcConfigurerAdapterそれが正しいルートだとは思いません。私も無駄@AutoWiredContext(として)に追加しようとしました。私は、またはおそらく@Beanそこにあると思いますか?WebMvcConfigurerAdapterAbstractAnnotationConfigDispatcherServletInitializer

4

1 に答える 1

0

HandlerMethodArgumentResolverそしてそれWebMvcConfigurerAdapterは確かにあなたの目標を達成するための正しい方法です.

カスタム引数リゾルバーを登録するには、そのメソッドを@Configuration拡張WebMvcConfigurerAdapterしてオーバーライドする必要があります。addArgumentResolver()

于 2013-10-29T17:37:47.543 に答える