2013-07-12 21 views
1

我要去實現它使用作爲參數傳遞給視圖動態視圖的Spring MVC控制器:Spring MVC的動態視圖+處理不存在的觀點

@Controller 
@RequestMapping("/page") 
public class PageController { 

    @RequestMapping(value = "/{page}", method = {RequestMethod.GET}) 
    public ModelAndView page(@PathVariable("page")String page) { 
     System.out.println("page = " + page); 

     return new ModelAndView(page); 
    } 
} 

意見被作爲UrlBasedViewResolver解決:

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
    <property name="cache" value="false"/> 
</bean> 

有什麼辦法可以在請求不存在視圖時返回默認視圖?也許要檢查是否存在視圖,然後返回new ModelAndView('requested_page_not_found')

回答

1

不與UrlBasedViewResolver和朋友。一旦鏈已經達到它,你承諾 - 如果視圖doesn't exist,你將被定向到你的容器配置的任何404頁面。

注意:鏈接ViewResolver時,UrlBasedViewResolver總是需要最後一個,因爲它會嘗試解析任何視圖名稱,而不管底層資源是否真實存在。