4

構文を使用して、注釈forward:/のないメソッドにリクエストをリダイレクトすることは可能ですか?@RequestMapping

私が達成しようとしているのは、ブラウザーから直接アクセスできないパスにリクエストを内部的にリダイレクトする方法です。

たとえば、ユーザーがリクエストした場合、/image.jpgにマップされた画像に応答するコントローラーにリダイレクトしたいと思い/img/image.jpgます。重要なのは/img/image.jpg、ブラウザから直接アクセスできないということです。

出来ますか?どうすればこの必要性を達成できますか?

4

1 に答える 1

1

forward:/リソースの呼び出しに使用する場合は、リクエスト マッピング パスを作成する必要があると思います。ただし、次の方法でこれを実現できます。

エンドユーザーの直接のブラウザ呼び出しではアクセスできないリクエスト マッピング パスを作成します。パスのリクエストを転送する前に、リクエストマッパーによってチェックされる追加のリクエストパラメーターをいくつか入れます。

例 :

@RequestMapping(value = "/direct/browser/call")
public String connections(WebRequest request) throws SQLException {
    //validate request
    request.setAttribute("formButton", isPost, WebRequest.SCOPE_REQUEST);
    return "redirect:/some/value";
}

@RequestMapping(value = "/some/value")
public String connections(WebRequest request) throws SQLException {
    //validate request
    if(request.getParameter("formButton")!=null) { return "/homepage"; }
    // else : do processing
}

HTTP GETリクエスト マッピングでブラウザ呼び出しを制限することもできます。例:

@RequestMapping(value = "/some/value", method = RequestMethod.POST)

HTTP メソッド : HEAD、PUT、DELETE、TRACE、および OPTIONS もこの場合に役立ちます。

于 2012-08-30T16:50:00.530 に答える