2012-07-05 78 views
4

我是Spring MVC的新手。我捕獲了異常,我想重定向到error.jsp頁面並顯示異常消息(ex.getMessage())後捕獲異常的控制器。我不想使用Spring的異常處理程序,而是必須以編程方式重定向到error.jsp。從Spring MVC的控制器調用Jsp頁面

@RequestMapping(value = "http/exception", method = RequestMethod.GET) 
public String exception2() 
{ 
    try{ 
     generateException(); 
    }catch(IndexOutOfBoundsException e){ 
     handleException(); 
    } 
    return ""; 
} 

private void generateException(){ 
    throw new IndexOutOfBoundsException();  
} 

private void handleException(){ 

    // what should go here to redirect the page to error.jsp 
} 

回答

2

我不確定你爲什麼要從你的方法中返回String; Spring MVC中的標準是針對使用@RequestMapping註釋的方法返回ModelAndView,即使您沒有使用Spring的異常處理程序。據我所知,你不能在沒有返回ModelAndView的地方發送你的客戶端到error.jsp。如果你需要幫助理解Spring控制器的基本思想,我發現this tutorial展示瞭如何在Spring MVC中創建一個簡單的「Hello World」應用程序,並且它有一個簡單的Spring控制器的好例子。

如果你想你的方法,如果它遇到異常返回錯誤頁面,但否則返回正常頁面,我會做這樣的事情:

@RequestMapping(value = "http/exception", method = RequestMethod.GET) 
public ModelAndView exception2() 
{ 
    ModelAndView modelAndview; 
    try { 
     generateException(); 
     modelAndView = new ModelAndView("success.jsp"); 
    } catch(IndexOutOfBoundsException e) { 
     modelAndView = handleException(); 
    } 
    return modelAndView; 
} 

private void generateException(){ 
    throw new IndexOutOfBoundsException();  
} 

private ModelAndView handleException(){ 
    return new ModelAndView("error.jsp"); 
} 
+0

感謝愛德華。你是對的。它應該不是字符串,這種方式將起作用。感謝您的答覆 – james01 2012-07-05 23:50:00

相關問題