概述
刚入门SpringBoot,通过一个入门案例来学习SpringBoot里的一些基础使用。
Restful风格的CRUD
项目目录如下,使用IDEA的Spring Initializr创建工程,只添加web模块
该项目使用的技术:
1、SpringBoot(web模块),默认自动配置
2、Thymeleaf模板引擎
3、Restful风格
该项目实现的功能:
1、静态资源访问
2、国际化
3、拦截器
3、登录
4、列表数据的增删查改
这里只记录一些重要的地方,一些简单的不做介绍
《本项目源码下载》
全局配置文件application.properties
#服务器端口
server.port=8088
#静态资源
#spring.resources.static-locations=classpath:/static/,classpath:/resources/,classpath:/webjars/
#指定国际化文件
spring.messages.basename=i18n.login
#开发时禁用thymeleaf缓存
spring.thymeleaf.cache=false
#日期格式化
spring.mvc.date-format=yyyy-MM-dd
自定义配置类:
// 加入自定义组件,扩展SpringMVC的功能
//@EnableWebMvc
// 如果在配置类上加上此注解,则SpringBoot对SpirngMvc的自动配置失效
@Configuration
public class MyMvcConfigurer implements WebMvcConfigurer {
// 添加视图控制器,完成页面资源映射
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 配置路径映射
registry.addViewController("/").setViewName("login");
registry.addViewController("/index.html").setViewName("login");
registry.addViewController("/login.html").setViewName("login");
registry.addViewController("/main.html").setViewName("dashboard");
}
// 添加拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandlerInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/", "/login.html", "/user/login");
}
// 加入国际化组件
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
Thymeleaf的使用
引入命名空间:
<html lang="en" xmlns:th="http://www.thymeleaf.org">
把需要渲染的模板放到/templates目录下,以html后缀命名,就会被自动渲染
由于页面的顶部栏和左侧栏是通用的,所以将其抽取出来放在bar.html中,然后使用Thymeleaf标签在相应位置引入即可
Restful风格的CRUD
URI: /资源名称/资源标识 HTTP请求方式区分对资源CRUD操作
Tables | 普通CRUD(uri来区分操作) | RestfulCRUD |
---|---|---|
查询 | getEmp | emp—GET |
添加 | addEmp?xxx | emp—POST |
修改 | updateEmp?id=xx&xxx=xxx | emp/{id}—PUT |
删除 | deleteEmp?id=x | emp/{id}—DELETE |
本次实验的请求架构:
实验功能 | 请求URI | 请求方式 |
---|---|---|
查询所有员工 | emps | GET |
来到添加页面 | emp | GET |
添加员工 | emp | POST |
来到修改页面(查出员工进行信息回显) | emp/{id} | GET |
修改员工 | emp | PUT |
删除员工 | emp/{id} | DELETE |
问题:由于普通的form表单只支持GET和POST方式,可以使用一种方式来解决这个问题
方法:
1、SpringMVC中配置HiddenHttpMethodFilter
(SpringBoot自动配置好的)
2、页面创建一个post表单
3、创建一个input项,name=”_method”,值就是我们指定的请求方式
html
<form action="/emp" method="post">
<!--发送put请求修改员工数据-->
<!--
1、SpringMVC中配置HiddenHttpMethodFilter(SpringBoot自动配置好的)
2、页面创建一个post表单
3、创建一个input项,name="_method",值就是我们指定的请求方式
-->
<input type="hidden" name="_method" value="put"/>
......
</form>
Controller
// 修改员工信息
@PutMapping("/emp")
public String edit(Employee employee){
employeeDao.save(employee);
return "redirect:/emps";
}
// 根据id查出员工信息,跳转到修改页面进行回显
@GetMapping("/emp/{id}")
public String toEditPage(@PathVariable("id")Integer id, Model model){
// 根据id查出员工信息
Employee employee = employeeDao.get(id);
// 获取部门信息,用于页面回显
Collection<Department> departments = departmentDao.getDepartments();
model.addAttribute("deps", departments);
model.addAttribute("emp", employee);
return "emp/add";
// 这里addPage和editPage共同使用一个页面
}
其他的提交方式以此类推。
最后
以上就是贪玩草莓为你收集整理的SpringBoot之RestfulCRUDRestful风格的CRUDThymeleaf的使用Restful风格的CRUD的全部内容,希望文章能够帮你解决SpringBoot之RestfulCRUDRestful风格的CRUDThymeleaf的使用Restful风格的CRUD所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复