springmvc經過controller層自定義404頁面已經springmvc匹配規則

一般在springmvc中能夠直接經過web.xml配置404自定義的頁面,可是缺乏靈活性java

好比若是須要根據映射地址去跳轉到不一樣的頁面,那麼則在配置文件就不能知足web

也瞭解過直接改寫springmvc拋出異常的方法,可是並無找到直接跳轉自定義404頁面的相關方法,最後終於找到了一種簡單的,能夠直接經過controller層判斷的方法spring

@Controller
public class DefaultHandlerExceptionResolver {
	@RequestMapping("/**")
	public String noHandleMethod(ModelAndView view, HttpServletRequest request)
			
	{
	    String url = request.getRequestURI();
	    int result = url.indexOf("須要判斷的含有的代碼");
	    if(result != -1) {
	    	return "jsp-en/error/error";
	    }
	    return "jsp/error/error";
	}
}

經過url中含有字符串的不一樣,能夠跳轉到不一樣的404頁面mvc

具體解析:app

springmvc的路徑匹配規則jsp

/**表明任意層次post

@RequestMapping("/**")

/*表明一層url

@RequestMapping("/*")

以上爲匹配全部路徑code

可是爲何個人需求是報404,找不到頁面的邏輯用的匹配全部路徑呢?xml

由於springmvc匹配規則是誰更準確匹配誰,/**是springmvc中最不許確的,因此全部存在的路徑會被優先匹配到,剩下的則是沒有此路徑的,這些都將被/**路徑下的方法處理。

更具體的springmvc匹配規則:

http://www.javashuo.com/article/p-wlbggiak-bt.html

相關文章
相關標籤/搜索