一般在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匹配規則: