我想知道Spring中是否有某种方法可以在控制器中指定我想将客户端发送到我用于查看的.jsp页面中的特定锚点。
我的.jsp页面中有一个由#errors
锚标识的部分,显示出现的任何表单错误。我想能够在模型验证失败后将它们发送回.jsp时直接将它们发送到该锚点。
在我的控制器类中,我处理验证错误,如下所示:
if (result.hasErrors())
{
for (ObjectError error : result.getAllErrors())
{
logger.debug("Validation Error: " + error.getDefaultMessage());
}
ModelAndView mv = new ModelAndView();
mv.setViewName("/secure/formViews/newAdminBookingMenu");
mv.addObject(BindingResult.MODEL_KEY_PREFIX + "booking", result);
return mv;
}
我希望能够在该代码块中指定当客户端获取呈现的newAdminBookingMenu.jsp
时,它们会直接发送到该页面中的#errors
锚标记。
我显然无法通过将#errors
添加到我希望呈现的.jsp的名称来实现这一点,因为InternalResourceViewResolver会将视图解释为/WEB-INF/jsp/jspName#errors.jsp
,这显然是不正确的。
我知道这可以通过javascript和onload
事件来完成,但我发现那种脏,如果存在,我真的更愿意找到Spring方法。
有什么想法吗?
干杯。
答案 0 :(得分:8)
也许RedirectView
是一个选项:
modelAndView.setView(new RedirectView("error/page#errors", true));
参考: