2011-03-02 56 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)); 

參考: