SpringBoot非官方教程 | 第二十篇: 处理表单提交

这篇文件主要介绍通过springboot 去创建和提交一个表单。

创建工程

涉及了 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

@Controller
public 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏不想当开发的产品不是好测试

spring boot 登录注册 demo (一)

Welcome to Spring Boot 代码结构 ? src/main/java 下 controller层,路由功能 dao层,数据库的访问 domai...

33450
来自专栏Java编程技术

Dubbo剖析-监控平台的搭建与使用

dubbo-monitor主要用来统计服务的调用次调和调用时间的监控中心,服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中...

19620
来自专栏10km的专栏

Caffe: Could not find PROTOBUF Compiler(Profobuf 3.0 above)

在用cmake生成Caffe工程文件的时候,如果你使用Protobuf 3.0以上的版本,cmake可能会产生如下的报错: CMake Error at cm...

1.1K60
来自专栏有困难要上,没有困难创造困难也要上!

Cordova 打包错误 ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVari

1K50
来自专栏乐沙弥的世界

MHA masterha_check_repl 检测过程

    MHA部署及配置是否OK,我们可以借助于MHA自带的masterha_check_ssh以及masterha_check_repl脚本来检测。maste...

8320
来自专栏电光石火

Spring Cloud与Spring Boot版本匹配关系

Spring Cloud版本 在写本篇文章时,Spring Cloud版本演进情况如下: 版本名称 版本 ...

74880
来自专栏Java编程技术

Dubbo剖析-管理控制台的搭建与使用

开源的Dubbo的服务管理控制台是阿里巴巴内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。

10230
来自专栏运维

Ceph集群由Jewel版本升级到Luminous版本

https://www.virtualtothecore.com/en/upgrade-ceph-cluster-luminous/ http://www.ch...

27610
来自专栏闵开慧

a windows service with the name MYSQL already e...

安装MySQL的时候出现这个报错:a windows service with the name MYSQL already exists.Please ...

359110
来自专栏一个会写诗的程序员的博客

Spring Boot 2.0 内嵌 Tomcat 定制 : WebServerFactoryCustomizer

Spring Boot 2.0 内嵌 Tomcat 定制 : WebServerFactoryCustomizer

28220

扫码关注云+社区

领取腾讯云代金券