SSM框架中,如何配置不同路径下配置不同404转发路径?
如:
1./admin下404转发一个路径,
2./user下404转发另一个路径
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如:
1./admin下404转发一个路径,
2./user下404转发另一个路径
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
对于找不到Handler来处理某个请求,还是让DispatcherServlet来抛异常,用来处理404.即将DispatcherServlet的throwExceptionIfNoHandlerFound设为true.可在DispatcherServletInitializer(继承自AbstractAnnotationConfigDispatcherServletInitializer的自定义配置类)重写registerDispatcherServlet,或者重写customizeRegistration设置初始化参数.
然后自己写异常处理方法
`
@ControllerAdvice(annotations = {RestController.class})
public class ExceptionReaper {
`
还有种方法
Spring MVC对于url的匹配采用的是一种叫做“最精确匹配的方式”,举个例子
比如我们同时定义了“/test/a”, "/test/*",那么若请求的url结尾为/test/a,那么则会匹配精确的那个,也就是"/test/a"
我们是不是可以利用这个特点来找到那些找不到的页面?
1、首先我们定义一个拦截所有url的规则@requestMapping("*"),那么实际上不存在找不到的页面了,也就是永远不会进入noHandlerFound方法体内
2、后面的步骤和平时一样,为别的请求都配置上@requestMapping
那么请求过来,要么进入我们精确匹配的method(也就是找的到的),要么进入@requestMapping("*)拦截的方法体内(也就是找不到的)
那么我们只要让@requestMapping("*)拦截的这个方法返回一个自定义的404界面就OK了~
而对于404页面选择,判断请求地址就行了