2011-03-02 55 views
4

我想知道是否有某种方式在Spring中在控制器中指定我想将客户端发送到我用于我的视图的.jsp页面中的特定锚点。Spring Jsps和跳到锚点

我在我的.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方法(如果存在的话)。

任何想法?

干杯。

回答

8

也许RedirectView是一个选项:

modelAndView.setView(new RedirectView("error/page#errors", true)); 

参考: