SpringBoot 2.4.0——CURD项目

项目地址:码云链接

一、首页跳转配置

通过实现WebMvcConfigurer来扩展SpringMVC的功能。

@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
    
    

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
    
    
        registry.addViewController("/").setViewName("login");
        registry.addViewController("/index.html").setViewName("login");
        registry.addViewController("/main.html").setViewName("dashboard");
    }
}

二、国际化配置

1、编写国际化配置文件

指定国际化配置的基础名:login

spring.messages.basename=i18n.login

创建i18n文件,再创建login.properties文件,当创建login_en_US.properties后,springBoot会自动识别这是国际化配置文件,并生成Resource Bundle 'login’文件夹。
在这里插入图片描述
在这里插入图片描述

2、前端读取国际化配置文件

前端页面通过#{}来读取国际化配置:
在这里插入图片描述
注意:
不带内容体的,要通过[ [ ] ]来取值:
在这里插入图片描述

3、通过前端链接切换国际化配置

在连接中携带区域信息:
在这里插入图片描述
重写区域解析器LocaleResolver。

public class MyLocaleResolver implements LocaleResolver {
    
    
    
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
    
    
        String l = request.getParameter("l");
        Locale locale = Locale.getDefault();
        if(!StringUtils.isEmpty(l)){
    
    
            String[] split = l.split("_");
            locale = new Locale(split[0],split[1]);
        }
        return locale;
    }
 
    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale 
locale) {
    
    
 
    }
}

将解析器注入到容器中:

 @Bean
    public LocaleResolver localeResolver(){
    
    
        return new MyLocaleResolver();
    }
}

注意:
这里解析器的方法名要和mvc自动配置类中的方法名相同,必须为localeResolver(),这样相当于与原来解析器的id名相同,可以替换掉原来的解析器。
在这里插入图片描述

三、登录

1、登录controller

在这里插入图片描述

注:

  • 1:向前端传递错误信息,如果msg不为空则显示

在这里插入图片描述

  • 2:表单提交之后,登录成功时,通过重定向到达主页面,防止表单重复提交。
2、使开发时的模板引擎实时生效

(1) 禁用模板引擎的缓存

spring.thymeleaf.cache=false

(2)ctrl+F9
修改模板文件后,使用ctrl+F9,重新编译,无需再重启项目。

四、拦截器

(1)配置登录拦截器
实现HandlerInterceptor,来完成登录拦截器的配置。
在这里插入图片描述
(2)注册拦截器
在这里插入图片描述
注:
springBoot 2.xx后,配置拦截器时,静态资源也会被拦截,所以此处需要排除静态资源。

五、员工列表显示

(1)公共页面抽取
抽取公共片段,将其放入一个公共页面bar.html中。
在这里插入图片描述
(2)公共页面引入
在这里插入图片描述
传入的参数在公共页面中应用:此处用于判断文字是否高亮
在这里插入图片描述
(3)CRUD接口
通过使用不同的请求方式,来实现Restful风格的url.
在这里插入图片描述
(4) 访问员工列表
在这里插入图片描述
遍历emps,生成员工列表
在这里插入图片描述

六、添加员工列表

在这里插入图片描述
这里需要注意一下输入日期的格式:
在这里插入图片描述
在配置文件中配置输入的日期格式,springboot的默认日期格式是yyyy/MM/dd

spring.mvc.format.date=yyyy-MM-dd

提交表单后,进行员工的添加操作。
在这里插入图片描述

七、修改员工

在这里插入图片描述
注意此处,我们修改和添加都使用add.html页面

通过判断emp!=null来进行回显,下面是需要注意的点:
在这里插入图片描述

在修改表单时,我们使用put来进行提交表单。在提交时需要改变请求方法为put:
在这里插入图片描述

为此,我们需要定义一个隐藏表单:

<input type="hidden" name="_method" value="put" th:if="${emp!=null}" />

而在Springboot2.xx中,隐藏表单功能默认是不开启的,需要在配置文件中手动开启:

spring.mvc.hiddenmethod.filter.enabled=true

因为在修改表单进行提交时并未提交id,所以这里使用了隐藏表单来提交id。

提交表单,通过put的方式来到/emp:
在这里插入图片描述

注:
SpringMVC中更改请求方法的方式:

  • SpringMVC中配置HiddenHttpMethodFilter;(SpringBoot已经配置了)
  • 页面创建一个post表单
  • 创建一个input项,name="_method";值就是我们指定的请求方式

八、删除员工

在这里插入图片描述

通过th:attr自定义属性:th:attr="del_uri=@{/emp/}+${emp.id}"
$(this)表示当前按钮,通过 $(this).attr("del_uri");拿到当前按钮的属性值。

$("#deleteForm").attr("action",$(this).attr("del_uri")).submit();

通过attr来改变任意属性,将action的表单提交地址改为del_uri指定的地址。

提交表单,通过delete的方式来到/emp/{id}
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/glpghz/article/details/111236266