`
wx1569484809
  • 浏览: 64040 次
文章分类
社区版块
存档分类
最新评论

springmvc通过controller层自定义404页面已经springmvc匹配规则

 
阅读更多

通常在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匹配规则:

https://juejin.im/post/5aab5f5cf265da23826dbb18

转载于:https://my.oschina.net/u/3829307/blog/3077352

分享到:
评论

相关推荐

    自定义的springMVC

    在IT行业中,SpringMVC是Spring框架的一个模块,专门用于构建Web应用程序。...文件"customSpringMVC"可能是该项目的源码或者配置文件,通过分析和学习这些文件,可以进一步了解和实践自定义SpringMVC的技巧。

    SpringMVC学习编程代码

    通过`@Component`和`@Order`注解,我们可以创建自定义的拦截器类,并通过`HandlerInterceptorAdapter`进行扩展。 除此之外,SpringMVC还支持异步处理,使用`@Async`注解可以在后台线程执行耗时操作,提高应用程序的...

    SpringMVC访问静态资源

    Spring MVC可以通过动态生成这样的URL,例如通过`@Webjars`库或自定义拦截器实现。 总结来说,Spring MVC提供了多种方式来管理和优化静态资源的访问,包括自定义静态资源路径、缓存控制、避免与控制器冲突以及性能...

    手写 springmvc

    通过这个实践,开发者可以深入学习SpringMVC的内部机制,了解请求处理、依赖注入、AOP(面向切面编程)以及异常处理等关键概念。 【标签】:“java spring springmvc 手写” 1. **Java**:作为主要的编程语言,...

    SpringMVC完整使用教程

    视图名称通常与实际视图资源路径有关,通过配置 `ViewResolver` 可以指定转换规则。 ### 第 6 章 异常处理 SpringMVC 提供了统一的异常处理机制,可以通过 `@ExceptionHandler` 注解定义异常处理器,或配置 `...

    java SpringMVC登录

    在Java开发领域,SpringMVC是一个非常流行的MVC(Model-View-Controller)框架,用于构建Web应用程序。MyBatis则是一个优秀的持久层框架,它提供了灵活的SQL映射和对象关系映射功能,使数据库操作变得更加简单。在这...

    SpringMVC四种映射方式实例代码

    - 在SpringMVC的配置文件中,需要将自定义的拦截器添加到`<mvc:interceptors>`标签内,使用`<bean>`标签定义拦截器,并通过`<mvc:interceptor>`标签指定拦截的URL范围。 4. **SpringMVCDemo**: - `SpringMVCDemo...

    springMVC整合shiro框架

    - **SpringMVC Controller 的拦截器配置**: 在 SpringMVC 的配置中,设置 Shiro 过滤器作为全局拦截器,通过 `@Autowired` 注入 ShiroFilter 实例并配置相关路径。 3. **Shiro 相关概念** - **Subject**: 表示...

    老司机带你分析SpringMVC框架设计原理与实现

    SpringMVC内置了数据绑定机制,可以自动将请求参数与Controller方法参数进行匹配。此外,还支持自定义数据绑定逻辑,满足特定的需求。 #### 4. 国际化支持 SpringMVC集成了国际化功能,通过配置不同的资源文件来...

    从源码的角度来看SpringMVC.zip

    SpringMVC中有多重实现,例如基于注解的`RequestMappingHandlerMapping`,它会扫描类路径下标记了`@Controller`的类,并根据`@RequestMapping`注解来匹配请求。 3. **HandlerAdapter**:处理器适配器,处理控制器...

    SpringMVC自定义参数绑定实现详解

    SpringMVC自定义参数绑定实现详解主要介绍了SpringMVC自定义参数绑定实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。 一、参数绑定过程 在...

    mybatis+springmvc分页

    在分页场景下,我们需要在Controller层接收用户传递的分页参数,如当前页和每页显示数量,然后调用Service层的方法进行查询。Service层会进一步调用Mybatis的Mapper接口,执行分页查询。返回的数据可以包装成一个...

    springmvc log4j2 logback 注解 jackson 日志脱敏实现源码

    在实际应用中,可以结合使用这些方法,比如在Controller层处理HTTP请求时使用SpringMVC的注解脱敏,而在日志记录层面利用`Logback`或`Log4j2`的扩展功能进行全局脱敏。 在`desensitization`这个压缩包文件中,可能...

    springmvc的一个简单的框架实例

    模型是应用的核心业务逻辑部分,它处理数据并将其存储在持久化层。在 Spring MVC 中,模型通常由 Java 对象(称为 beans)表示,这些对象可以通过 Spring 的依赖注入(DI)来管理,以便与其他服务或数据源交互。 **...

    SpringMvc文档

    Spring MVC 是一个基于 Java 的表现层框架,主要用于处理 Web 应用中的用户界面交互。它是 Spring 框架的一个重要组成部分,旨在简化 MVC(Model-View-Controller)设计模式的实现。Spring MVC 提供了控制器、模型...

    SpringMVC+Mybatis实现权限管理

    通过自定义拦截器,我们可以实现细粒度的权限控制,确保只有拥有相应权限的用户才能访问特定的URL或执行特定的操作。 2. **Mybatis**:Mybatis是一个轻量级的持久层框架,它简化了SQL操作,提供了动态SQL的功能。在...

    23道SpringMVC常见面试题.docx

    2. DispatcherServlet 查找 HandlerMapping,找到匹配的 Controller 来处理请求。 3. Controller 执行业务逻辑,返回 ModelAndView。 4. DispatcherServlet 查询 ModelAndView,找到对应的视图。 5. 视图负责渲染...

    SpringMVC整合bootstrap-table 初始化数据-自定义搜索-弹出模态框

    在后端,我们需要在SpringMVC的Controller中接收前端传递的搜索条件,查询数据库,并返回匹配的结果。这需要编写对应的Service和DAO层代码,可能涉及SQL语句的编写和参数绑定。 在实现弹出模态框功能时,我们通常会...

    SPRINGMVC+SHIRO+MYSQL

    SpringMVC的核心组件包括DispatcherServlet、Controller、ViewResolver、ModelAndView等。 1. **DispatcherServlet**:它是SpringMVC的前端控制器,负责接收请求并分发到相应的处理器。 2. **Controller**:处理...

Global site tag (gtag.js) - Google Analytics