registry.addViewController("/{spring:\\w+}")用法
时间: 2023-10-09 10:13:26 浏览: 53
`registry.addViewController()`是Spring MVC中用于添加视图控制器的方法。它可以将一个请求路径映射到一个具体的视图上,从而实现URL与视图之间的映射关系。
`/{spring:\\w+}`是一个请求路径模式,表示匹配任意以字母、数字或下划线组成的路径。其中,`{spring}`是路径变量,表示一个命名的占位符,可以在控制器方法中使用`@PathVariable`注解获取它的值。`:\\w+`是一个正则表达式,表示路径变量的值必须满足以字母、数字或下划线组成的正则表达式。
因此,`registry.addViewController("/{spring:\\w+}")`的作用是将任意以字母、数字或下划线组成的请求路径映射到一个视图上,并且将路径中的任意命名占位符作为参数传递给该视图。
相关问题
@Configuration public class MyMvcConfig implements WebMvcConfigurer { //主要用于实现无业务逻辑跳转,例如主页跳转, //简单的请求重定向,错误页跳转等 @Override public void addViewControllers(ViewControllerRegistry registry) { //当访问 “/” 或 “/index.html” 时,都直接跳转到登陆页面 registry.addViewController("/").setViewName("login"); registry.addViewController("/index.html").setViewName("login"); registry.addViewController("/main.html").setViewName("main"); } //注册拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { System.out.println("MyMvcConfig.addInterceptors 注册拦截器"); registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/", "/login", "/index.html", "/user/login", "/css/**", "/images/**", "/js/**", "/fonts/**");//放行登录页,登陆操作,静态资源 } }
这是一个使用注解配置的Spring MVC的配置类。它实现了WebMvcConfigurer接口,并重写了其中的两个方法:addViewControllers和addInterceptors。
addViewControllers方法用于配置无业务逻辑的页面跳转。在这个例子中,当访问根路径"/"或者"/index.html"时,会直接跳转到登录页面,而访问"/main.html"时,会跳转到主页面。
addInterceptors方法用于注册拦截器。在这个例子中,注册了一个名为LoginInterceptor的拦截器。拦截器会拦截所有请求("/**"),但是排除了一些路径("/", "/login", "/index.html", "/user/login", "/css/**", "/images/**", "/js/**", "/fonts/**")。也就是说,这些路径不会被拦截器拦截,可以直接访问。
这个配置类的作用是实现简单的页面跳转和请求拦截功能。
boot返回码规范 spring_75. Spring Boot 定制URL匹配规则【从零开始学Spring Boot】
Spring Boot 中的返回码规范主要参考 HTTP 状态码规范,常用的状态码包括:
- 200 OK:请求成功。
- 201 Created:请求成功并创建了新资源。
- 204 No Content:请求成功但没有返回内容。
- 400 Bad Request:请求参数错误。
- 401 Unauthorized:未授权。
- 403 Forbidden:禁止访问。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法不允许。
- 500 Internal Server Error:服务器内部错误。
关于定制 URL 匹配规则,可以通过自定义 WebMvcConfigurerAdapter 类来实现。具体步骤如下:
1. 创建 WebMvcConfigurerAdapter 类,并加上 @Configuration 注解。
2. 重写 addInterceptors 和 addViewControllers 方法,用来添加拦截器和视图控制器。
3. 在 addInterceptors 方法中使用 addPathPatterns 和 excludePathPatterns 方法来添加和排除需要拦截的 URL 规则。
4. 在 addViewControllers 方法中使用 addViewController 方法来添加 URL 映射规则。
示例代码如下:
```java
@Configuration
public class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/api/**").excludePathPatterns("/api/login");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 添加视图控制器
registry.addViewController("/").setViewName("forward:/index.html");
}
}
```
以上示例中,addPathPatterns 方法用来添加需要拦截的 URL 规则,excludePathPatterns 方法用来排除不需要拦截的 URL 规则。addViewController 方法用来添加 URL 映射规则,将 / 映射到 /index.html 页面上。