私はこのように私のコントローラのメソッドを持っています。Spring 3.x - データを返すマッピングからどのようにリダイレクトするのですか?</p> <pre><code>@RequestMapping(value="getData", method=RequestMethod.GET) @ResponseBody public List<MyDataObj> getData() { return myService.getData(); } </code></pre> <p>データは要求に応じて、JSONまたはXSLとして返されます:
要求を行っている人は、私は、「権限がありません」ページにユーザーをリダイレクトするために必要なデータにアクセスすることを許可するので、このような何かされていない場合:
@RequestMapping(value="getData", method=RequestMethod.GET)
@ResponseBody
public List<MyDataObj> getData()
{
if (!isAuthorized())
{
// redirect to notAuthorized.jsp
}
return myService.getData();
}
私が見てきたすべての例Springを使用する場合は、String
またはModelAndView
のいずれかを返すメソッドが必要です。私はHttpServletResponse.sendRedirect()
を使用することを考えましたが、私のすべてのJSPはWEB-INFの下にあり、直接アクセスすることはできません。
データリクエストのURLを適切に拒否することはできますか?
私のメソッドに '@ResponseBody'という注釈が付けられているため、これは機能しませんでした。私はJSONの 'RedirectView'オブジェクトを手に入れました。私は今、 'HandlerInterceptor'を見ています。 – Paul
@Paul:良い点。私はそのビットを削除するために私の答えを編集しました。 – skaffman
私はディレクトリ構造を少し修正しなければなりませんでした(私は '/'の下にすべてを持っていました)が、インターセプタを使って大変感謝しました。 – Paul