1
我需要解决方案,以便如何将拦截器验证和控制器验证与Spring结合起来,以便在页面中显示所有错误(来自拦截器和控制器)。在Spring MVC中结合了拦截器验证和控制器验证
我当前的场景: 当拦截器获取错误,他重定向到当前页面,并显示错误,而不去控制器。
我需要去控制器也做其他验证,并采取我拦截器错误,如果存在,因为我需要用户知道页面中的所有错误。
我可以将拦截器的属性传递给控制器吗?解决方案是什么?
我需要解决方案,以便如何将拦截器验证和控制器验证与Spring结合起来,以便在页面中显示所有错误(来自拦截器和控制器)。在Spring MVC中结合了拦截器验证和控制器验证
我当前的场景: 当拦截器获取错误,他重定向到当前页面,并显示错误,而不去控制器。
我需要去控制器也做其他验证,并采取我拦截器错误,如果存在,因为我需要用户知道页面中的所有错误。
我可以将拦截器的属性传递给控制器吗?解决方案是什么?
我会自拦截通过请求属性通过验证错误控制器:
public class FooInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setAttribute("interceptorValidationErrors", "a list of validation errors");
return super.preHandle(request, response, handler);
}
}
而在这样的控制器阅读:
@Controller
public class FooController {
@RequestMapping("/foo")
String get(HttpServletRequest request) {
List<ObjectError> interceptorErrors = (List<ObjectError>) request.getAttribute("interceptorValidationErrors");
return "someViewName";
}
}
给我空指针异常时,试图通过(request.getAttribute(“interceptorValidationErrors”)来访问控制器中的属性,请求对象被填充但没有interceptorValidationErrors属性。 –
@MohammedMostafa是你实际调用的拦截器吗?你需要配置sprin g –
你说得对,但没有达到request.setattribute,当我改变了拦截器扩展HandlerInterceptorAdapter来实现HandlerInterceptor它的工作正常(我不知道为什么!) –