Spring Boot与Kotlin处理Web表单提交的方法
程序员文章站
2023-12-02 19:45:04
我们在做web开发的时候,肯定逃不过表单提交,这篇文章通过spring boot使用kotlin 语言 创建和提交一个表单。
下面我们在之前《spring boot 与...
我们在做web开发的时候,肯定逃不过表单提交,这篇文章通过spring boot使用kotlin 语言 创建和提交一个表单。
下面我们在之前《spring boot 与 kotlin使用freemarker模板引擎渲染web视图》项目的基础上,增加处理表单提交。
build.gradle 文件没有变化,这里贴一下完整的build.gradle
group 'name.quanke.kotlin' version '1.0-snapshot' buildscript { ext.kotlin_version = '1.2.10' ext.spring_boot_version = '1.5.4.release' repositories { mavencentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath("org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version") // kotlin整合springboot的默认无参构造函数,默认把所有的类设置open类插件 classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlin_version") classpath("org.jetbrains.kotlin:kotlin-allopen:$kotlin_version") } } apply plugin: 'kotlin' apply plugin: "kotlin-spring" // see https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-spring-compiler-plugin apply plugin: 'org.springframework.boot' jar { basename = 'chapter11-5-4-service' version = '0.1.0' } repositories { mavencentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" compile "org.springframework.boot:spring-boot-starter-web:$spring_boot_version" compile "org.springframework.boot:spring-boot-starter-thymeleaf:$spring_boot_version" // compile "com.fasterxml.jackson.module:jackson-module-kotlin:$kotlin_version" testcompile "org.springframework.boot:spring-boot-starter-test:$spring_boot_version" testcompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" } compilekotlin { kotlinoptions.jvmtarget = "1.8" } compiletestkotlin { kotlinoptions.jvmtarget = "1.8" }
创建实体类hello
/** * created by http://quanke.name on 2018/1/12. */ data class hello(var id: long? = 0, var content: string? = "")
创建controller
import name.quanke.kotlin.chaper11_5_4.entity.hello import org.springframework.stereotype.controller import org.springframework.ui.modelmap import org.springframework.web.bind.annotation.modelattribute import org.springframework.web.bind.annotation.postmapping import org.springframework.web.bind.annotation.requestmapping /** * created by http://quanke.name on 2018/1/10. */ @controller class hellocontroller { @requestmapping("/") fun index(map: modelmap): string { // / 加入一个属性,用来在模板中读取 map.addattribute("host", "http://quanke.name") map.addattribute("hello",hello()) // return模板文件的名称,对应src/main/resources/templates/index.html return "index" } @postmapping("/hello") fun hellopostsubmit(@modelattribute hello: hello): string { return "result" } }
页面展示层
src/main/resources/templates/index.html
<!doctype html> <html xmlns:th="http://www.w3.org/1999/xhtml"> <head lang="en"> <title>quanke.name</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <body> <h1 th:text="${host}">hello world</h1> <h1>form</h1> <form action="#" th:action="@{/hello}" th:object="${hello}" 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 lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>title</title> </head> <body> <h1>result</h1> <p th:text="'id: ' + ${hello.id}"/> <p th:text="'content: ' + ${hello.content}"/> <a href="/" rel="external nofollow" >submit another message</a> </body> </html>
spring boot 启动
import org.springframework.boot.springapplication import org.springframework.boot.autoconfigure.springbootapplication /** * created by http://quanke.name on 2018/1/9. */ @springbootapplication class application fun main(args: array<string>) { springapplication.run(application::class.java, *args) }
启动工程,访问ttp://localhost:8080/:
参考:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL数据库的方法
-
Spring Boot与Kotlin处理Web表单提交的方法
-
Spring Boot 与 Kotlin 使用Redis数据库的配置方法
-
Spring Boot RestTemplate提交表单数据的三种方法
-
Spring Boot中使用AOP统一处理web层异常的方法
-
Spring Boot Web 静态文件缓存处理的方法
-
Spring Boot处理全局统一异常的两种方法与区别
-
Spring Boot RestTemplate提交表单数据的三种方法
-
Spring Boot中使用AOP统一处理web层异常的方法
-
Spring Boot Web 静态文件缓存处理的方法