Tôi có một phương pháp trong điều khiển của tôi như thế này:Mùa xuân 3.x - làm cách nào để chuyển hướng từ bản đồ trả về dữ liệu?
@RequestMapping(value="getData", method=RequestMethod.GET)
@ResponseBody
public List<MyDataObj> getData()
{
return myService.getData();
}
Các dữ liệu được trả về như JSON hay xsl, tùy thuộc vào yêu cầu.
Nếu người đưa ra yêu cầu là không được phép truy cập dữ liệu tôi cần phải chuyển hướng người dùng đến một trang "không được uỷ quyền", do đó một cái gì đó như thế này:
@RequestMapping(value="getData", method=RequestMethod.GET)
@ResponseBody
public List<MyDataObj> getData()
{
if (!isAuthorized())
{
// redirect to notAuthorized.jsp
}
return myService.getData();
}
Tất cả các ví dụ tôi đã nhìn thấy sử dụng Spring yêu cầu phương thức trả về hoặc là String
hoặc ModelAndView
. Tôi đã nghĩ đến việc sử dụng HttpServletResponse.sendRedirect()
nhưng tất cả các JSP của tôi đều nằm trong WEB-INF và không thể liên lạc trực tiếp được.
Làm cách nào để từ chối quyền truy cập một cách duyên dáng vào URL yêu cầu dữ liệu?
Điều này không hiệu quả vì tôi đã chú thích phương pháp của tôi với '@ ResponseBody'. Tất cả những gì tôi có với đối tượng 'RedirectView' trong JSON. Tôi đang nhìn vào 'HandlerInterceptor' bây giờ. – Paul
@Paul: Tốt. Tôi đã chỉnh sửa câu trả lời của mình để xóa bit đó. – skaffman
Tôi đã phải làm lại cấu trúc thư mục của mình một chút (tôi có mọi thứ dưới '/') nhưng sử dụng một máy đánh chặn hoạt động rất tốt, cảm ơn. – Paul