3

私は持っています :

@Controller
@RequestMapping(value="admin/*", method=RequestMethod.GET)
public class AdminController {

    @Autowired
    private HttpServletRequest request;

    @Autowired
    private HttpServletResponse response;

    @RequestMapping
    public ResponseEntity<String> test0() {
        System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ");
        return null;
    }


}

とタグ:

<mvc:annotation-driven />

私のconfig.xmlで

私が感じるのは十分なはずですが、@Autowiredに問題があります。

タイプ[javax.servlet.http.HttpServletResponse]の一致するBeanが依存関係に見つかりません:修飾する少なくとも1つのBeanが必要です...

Beanのセットアップなどについて言及しているソリューションをいくつか見てきましたが、もっと良い方法が必要だと確信しています。注釈スキャンがこれを処理する必要があります。異なる時間にいくつかの異なるアノテーションのためにxmlでBeanを設定しなければならない場合、それはひどいことです。注釈を使用するときに機能させたいだけです。

私が見たもの: SpringMVC-応答

ありがとう!

4

3 に答える 3

3

自動配線は応答では機能せず、要求のみで機能します。回避策はありますが、それらは一種のハッキーでラメです。同じ問題が発生しました。回避策へのリンクが記載された元の質問です:@Autowired HttpServletResponse

于 2012-03-15T14:43:09.300 に答える
3

回避策として、次を試してください。

@RequestMapping
public ResponseEntity<String> test0(
        HttpServletRequest request, 
        HttpServletResponse response) {
    System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ");
    return null;
}

追加も試してみてくださいRequestContextListener。ただし、これは Spring MVC 環境では必要ありません。

于 2012-03-15T12:33:58.043 に答える
1

リクエストごとにリクエストとレスポーズが変更されるため、フィールドとして希望どおりに機能しません(より良い説明がありません)。フィールドで新しいリクエスト/レスポンスを毎回再注入することはできません。そのため、新しいたびに注入されるメソッドにそれらを追加する必要があります。

于 2012-03-16T14:35:18.093 に答える