通常在springmvc中可以直接通过web.xml配置404自定义的页面,但是缺少灵活性
比如如果需要根据映射地址去跳转到不同的页面,那么则在配置文件就不能满足
也了解过直接改写springmvc抛出异常的方法,但是并没有找到直接跳转自定义404页面的相关方法,最后终于找到了一种简单的,可以直接通过controller层判断的方法
@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页面
具体解析:
springmvc的路径匹配规则
/**代表任意层次
@RequestMapping("/**")
/*代表一层
@RequestMapping("/*")
以上为匹配所有路径
但是为什么我的需求是报404,找不到页面的逻辑用的匹配所有路径呢?
因为springmvc匹配规则是谁更准确匹配谁,/**是springmvc中最不准确的,所以所有存在的路径会被优先匹配到,剩下的则是没有此路径的,这些都将被/**路径下的方法处理。
更具体的springmvc匹配规则:
本文介绍了一种在SpringMVC中自定义404页面的方法,通过@Controller注解配合@RequestMapping(/**)实现对不存在路径的统一处理,并可以根据URL中特定字符串跳转至不同错误页面。
858

被折叠的 条评论
为什么被折叠?



