SpringBoot2.X|SpringBoot2.X 版本 WebMvcConfigurerAdapter 弃用
SpringBoot2.X 版本 WebMvcConfigurerAdapter 弃用
以下WebMvcConfigurerAdapter 比较常用的重写接口
/** 解决跨域问题 **/
public void addCorsMappings(CorsRegistry registry) ;
/** 添加拦截器 **/
void addInterceptors(InterceptorRegistry registry);
/** 这里配置视图解析器 **/
void configureViewResolvers(ViewResolverRegistry registry);
/** 配置内容裁决的一些选项 **/
void configureContentNegotiation(ContentNegotiationConfigurer configurer);
/** 视图跳转控制器 **/
void addViewControllers(ViewControllerRegistry registry);
/** 静态资源处理 **/
void addResourceHandlers(ResourceHandlerRegistry registry);
/** 默认静态资源处理器 **/
void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);
新的
1.实现WebMvcConfigurer(推荐使用)
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login");
registry.addViewController("/login.html").setViewName("login");
registry.addViewController("/main.html").setViewName("dashboard");
}
}
2.继承 WebMvcConfigurationSupport
【SpringBoot2.X|SpringBoot2.X 版本 WebMvcConfigurerAdapter 弃用】继承WebMvcConfigurationSupport这个类,在扩展的类中重写父类的方法即可,但是这种方式是有问题的,这种方式会屏蔽Spring Boot的@EnableAutoConfiguration中的设置。这时候启动项目时会发现映射根本没有成功,读取不到静态的资源也就是说application.properties中添加配置的映射配置没有启动作用,然后我们会想到重写来进行映射:
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/resources/static");
}
@Override
protected void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login");
registry.addViewController("/login.html").setViewName("login");
}}
thymeleaf springBoot2.0版本以上不用再切换thyme leaf版本
层叠样式 必须使用对应的rel值
加入rel=“stylesheet” 就好了(表示文档的外部样式表)
th:actioin处理登录请求
method:post方式的请求
@RequestParam(“username”) @RequestParam(“password”) 只要添了@RequestParam 注解,一旦没提交就会报错。
@Controller
public class LoginController {
@PostMapping(value="https://www.it610.com/user/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password,
Map, Object> map){
if(!StringUtils.isEmpty(username)&&"123456".equals(password)){
return "redirect:/main.html";
}else{
map.put("msg","用户名密码错误");
return "login";
}}
}
HandlerInterceptor 一个方法要成为拦截器必须实现HandlerInterceptor接口
public class LoginHandlerInterceptor implements HandlerInterceptor {}
重定向页面
request.getRequestDispatcher("/index.html").forward(request,response);
forward把页面写出去,记得一定要写出去
1: 开启HiddenHttpMethodFilter[#](https://www.cnblogs.com/dgwblog/p/11976640.html#2783284569 处理DeleteMapping请求时,前端发来的请求依旧时post请求,在配置文件中添加
最新版本的spring boot 默认不开启 restful 分割api
开启方法
# 启用hiddenMethod过滤器
spring.mvc.hiddenmethod.filter.enabled=true
通过使用隐藏域参数来
th:attr="del_uri=@{/emp/}+${emp.id}"
当然也可以使用传统POST 来做处理 , 在from里面多做几个参数
推荐阅读
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- C语言的版本比较
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- K8S|K8S 生态周报| Istio 即将发布重大安全更新,多个版本受影响
- Caffe在Windows10下CPU版本的安装(cpu+anaconda3+vs2013+pycaffe)
- 中单直通王者(三)(英雄池要跟上版本,选将放机灵点,听到没!)
- Centos6源码编译安装2.4版本http服务步骤
- C语言静态动态两版本通讯录实战源码
- 命令行上传小程序版本至微信后台
- 一篇博文搞定goctl(V1.3.0新版本解决goctl|一篇博文搞定goctl:V1.3.0新版本解决goctl rpc protoc的问题)