我想知道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方法.
有任何想法吗?
干杯.
解决方法:
也许RedirectView是一个选项:
modelAndView.setView(new RedirectView("error/page#errors", true));
参考: