创建工程
涉及了 web,加上spring-boot-starter-web和spring-boot-starter-thymeleaf的起步依赖。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies>
创建实体
代码清单如下:
public class Greeting {
private long id;
private String content;
public long getId() {
return id;
} public void setId(long id) {
this.id = id;
}
public String getContent()
{
return content;
} public void setContent(String content)
{
this.content = content;
}
}创建Controller
@Controllerpublic class GreetingController {
@GetMapping("/greeting")
public String greetingForm(Model model) {
model.addAttribute("greeting", new Greeting());
return "greeting";
} @PostMapping("/greeting")
public String greetingSubmit(@ModelAttribute Greeting greeting) {
return "result";
}
}页面展示层
src/main/resources/templates/greeting.html
<!DOCTYPE HTML><html xmlns:th="http://www.thymeleaf.org"><head>
<title>Getting Started: Handling Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>
<h1>Form</h1>
<form action="#" th:action="@{/greeting}" th:object="${greeting}" method="post">
<p>Id: <input type="text" th:field="*{id}" /></p>
<p>Message: <input type="text" th:field="*{content}" /></p>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form></body></html>src/main/resources/templates/result.html
<!DOCTYPE HTML><html xmlns:th="http://www.thymeleaf.org"><head>
<title>Getting Started: Handling Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>
<h1>Result</h1>
<p th:text="'id: ' + ${greeting.id}" />
<p th:text="'content: ' + ${greeting.content}" />
<a href="/greeting">Submit another message</a></body></html>启动工程,访问ttp://localhost:8080/greeting:

点击submit:

参考资料
https://spring.io/guides/gs/handling-form-submission/
源码下载
https://github.com/forezp/SpringBootLearning
SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql
SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA
SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql
SpringBoot非官方教程 | 第六篇:springboot整合mybatis
SpringBoot非官方教程 | 第七篇:springboot开启声明式事务
SpringBoot非官方教程 | 第八篇:springboot整合mongodb
SpringBoot非官方教程 | 第九篇: springboot整合Redis
SpringBoot非官方教程 | 第十篇: 用spring Restdocs创建API文档
SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API
SpringBoot非官方教程 | 第十二篇:springboot集成apidoc
SpringBoot非官方教程 | 第十三篇:springboot集成spring cache
SpringBoot非官方教程 | 第十四篇:在springboot中用redis实现消息队列
SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)
SpringBoot非官方教程 | 第十九篇: 验证表单信息
SpringBoot非官方教程 | 第二十一篇: springboot集成JMS
SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程
SpringBoot非官方教程 | 第二十四篇: springboot整合docker
SpringBoot非官方教程 | 第二十五篇:2小时学会springboot
SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台
优秀文章推荐:
更多springboot 教程:springBoot非官方教程 | 文章汇总
更多springcoud 教程:史上最简单的 SpringCloud 教程 | 文章汇总