0

これが私の質問です

春のコントローラー呼び出しの前にリクエストをインターセプトし、リクエストURIを確認して変更したい。その後、別の SPRING コントローラー メソッドを呼び出す必要があります。

私は mvc:interceptors を使用しましたが、注釈を使用して構成したいので、@Aspect のソリューションが必要です。すべてが機能していますが、コントローラーは元の要求と新しい要求に対して 2 回呼び出されました。インターセプターを使用すると false が返され、キャンセルされます。Aspect クラスについてはどうすればよいですか? ありがとうございました

これが私のコードです:

@Component
@Aspect
public class TestAspect {

    @Before("execution(* mycontroller.*(..))  &&" + "args(request,response)")
    public void interceptUrl(HttpServletRequest request, HttpServletResponse response) {

        System.out.println("@Aspect is running!");
        System.out.println(request.getRequestURI());

        if (request.getAttribute("client") == null) {
            request.setAttribute("client", "test");
            request.getRequestDispatcher("/newpath/contact").forward(request, response);
        }

    }

}
4

1 に答える 1

1

@Aroundの代わりにアドバイスを検討する必要があり@Beforeます。この場合、元のリクエスト チェーンを実行することはできません。

于 2012-08-24T16:42:57.190 に答える