日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring如何處理表單提交

瀏覽:164日期:2023-08-08 18:36:05

今天我們來講一個最簡單的表單提交處理的例子,通過提交一個表單給朋友打一聲招呼!

看這邊文章之前,你至少應該了解基于Spring的Web開發的基礎知識,當然,你還是應該準備好開發環境:

IDE+Java環境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea IntelliJ內置,如果使用IDE并且不使用命令行工具可以不安裝)

準備POM文件

POM.xml

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>com.tianmaying</groupId> <artifactId>springboot-form-submission-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springboot-form-submission-demo</name> <description>Springboot form submission demo</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.5.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

創建Controller

我們已經知道可以通過Controller來進行URL路由,Spring WebMvc框架會將Servlet容器里收到的HTTP請求根據路徑分發給對應的@Controller類進行處理、而 @RequestMapping注解表明該方法處理那些URL對應的HTTP請求。

我們的SayHelloController的代碼如下:

package com.tianmaying.springboot.formsubmission;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controllerpublic class SayHelloController { @RequestMapping(value='/sayhello', method=RequestMethod.GET) public String sayHelloForm(Model model) { model.addAttribute('helloMessage', new HelloMessage()); return 'sayhello'; } @RequestMapping(value='/sayhello', method=RequestMethod.POST) public String sayHello(@ModelAttribute HelloMessage helloMessage, Model model) { model.addAttribute('helloMessage', helloMessage); return 'message'; }} 針對/sayhello的GET請求,我們返回提交表單的頁面,即sayHello.html 針對/sayhello的POST請求,我們進行表單的處理,然后將打招呼的信息渲染到message.html頁面返回。

表單處理也無外乎這兩件事情:顯示表單,處理表單提交。

顯示表單

/sayhello的GET請求里,在渲染頁面之前,我們通過model.addAttribute('helloMessage', new HelloMessage());告訴頁面綁定到一個空的HelloMessage對象,這樣sayHello.html頁面初始時就會顯示一個空白的表單。

HelloMessage

package com.tianmaying.springboot.formsubmission;public class HelloMessage { private String name; private String message; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}

僅僅扔一個空白對象給表單還不夠,你還得告訴表單的各個輸入如何綁定到對象的各個屬性上。這個時候我們要用上Themeleaf了。

<!DOCTYPE HTML><html xmlns:th='http://www.thymeleaf.org'><head> <title>好吧啦網: Spring表單提交處理</title> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /></head><body> <h1>表單處理演示</h1> <form action='#' th:action='@{/sayhello}' th:object='${helloMessage}' method='post'> <p>friend: <input type='text' th:field='*{name}' /></p> <p>message: <input type='text' th:field='*{message}' /></p> <p><input type='submit' value='Submit' /> <input type='reset' value='Reset' /></p> </form></body></html> th:action='@{/sayhello}'表示將表單提交的POST請求交給/sayhello這個URL來處理 th:object='${helloMessage}'表示用來搜集的表單數據的對象時helloMessage,即用戶輸入信息將存儲于這個對象中 兩個表單域分別增加了屬性th:field='*{name}'和th:field='*{message}',這就是將一個表單域綁定到特定的對象屬性

處理表單

把處理表單的Controller代碼再單獨拿出來:

@RequestMapping(value='/sayhello', method=RequestMethod.POST) public String greetingSubmit(@ModelAttribute HelloMessage helloMessage, Model model) { model.addAttribute('helloMessage', helloMessage); return 'message'; }

處理表單就非常簡單了,通過@ModelAttribute,我們可以直接通過helloMessage對象來處理用戶提交的信息了。

從最早JSP和Servlet時代過來的人,對從request中根據參數名稱逐個獲取信息,然后自己去設置對應對象屬性的場景一定會歷歷在目,那叫慘絕人寰哪。現在我們只需專注于Model的業務邏輯處理了,Spring MVC和Thymeleaf這對黃金組合幫我們搞定了表單和對象綁定這樣繁瑣的事情。

Run起來

這應該是你很熟悉的代碼了:

package com.tianmaying.springboot.formsubmission;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class App { public static void main(String[] args) { SpringApplication.run(App.class, args); }}

SpringBootApplication標注做的事情參考這里,mvn spring-boot:run或在IDE中運行main()方法就可以看到效果了!​不用裝Web服務器不用部署就能直接Run Web應用的感覺確實很酸爽!

當然,一個成熟的應用,通常還需要做表單的驗證操作,即確保用戶提交上來的數據是合法而且有效的!且待下回分解!

以上就是Spring如何處理表單提交的詳細內容,更多關于Spring處理表單提交的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
性欧美69xoxoxoxo| 三级亚洲高清视频| 欧美伊人影院| 国产情侣久久| 久久久久伊人| 97精品国产一区二区三区| 国产不卡人人| 久久久噜噜噜| 日韩啪啪电影网| 播放一区二区| 夜久久久久久| 日韩福利视频导航| 精品一区av| 欧洲av不卡| 欧美亚洲激情| 亚洲自啪免费| 欧美日韩午夜电影网| 精品淫伦v久久水蜜桃| 国产精选在线| 伊人久久婷婷| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩高清不卡一区| 国产激情精品一区二区三区| 国产一区二区三区精品在线观看| 天堂中文av在线资源库| 狠狠干成人综合网| 日韩精品成人在线观看| 国产精品欧美一区二区三区不卡| 国产一区二区三区国产精品| 久久男女视频| 蜜臀久久久久久久| 欧美国产三级| 久久久成人网| 日韩午夜视频在线| 久久99国产精品视频| 在线成人动漫av| 亚洲免费专区| av资源中文在线天堂| 激情五月色综合国产精品| 伊人久久成人| 国产精品地址| 亚洲欧美一区在线| 日韩三级精品| 天堂а√在线最新版中文在线| 香蕉久久久久久久av网站| 国产九一精品| 99国产精品| 久久伊人久久| 久久亚洲国产精品一区二区| 国产精品sss在线观看av| 欧美 日韩 国产一区二区在线视频| 亚洲精选成人| 日韩一区自拍| 天堂va欧美ⅴa亚洲va一国产| 国产精品17p| 欧美日韩国产在线一区| 国产精品久久| 亚洲欧美日韩精品一区二区| 久久精品天堂| 巨乳诱惑日韩免费av| 国产在视频一区二区三区吞精| 日韩视频二区| 首页国产精品| 亚洲欧美日本国产| 久久精品欧美一区| 国产乱子精品一区二区在线观看| 欧美日韩国产高清电影| 国产精品免费99久久久| 1024精品一区二区三区| 国产精品久久久久久久久久久久久久久 | 国产视频一区二区在线播放| 久久国产免费| 国产精品黄色| 亚洲久久一区| 99热精品久久| 国产精品第十页| 亚洲理论在线| 一区在线视频观看| 深夜视频一区二区| 国产精品va| 日本不卡不码高清免费观看| 欧美精品黄色| 久久久久国产| 欧美xxxx中国| 国产精品一区二区精品| 久久高清一区| 欧美高清不卡| 日韩中文字幕高清在线观看| 老司机免费视频一区二区| 日本亚洲视频| 香蕉久久夜色精品国产| 91精品一区二区三区综合在线爱| 久久精品国产999大香线蕉| 日韩美女国产精品| 99视频一区| 激情综合激情| 日韩精品午夜| 蜜桃av在线播放| 福利片在线一区二区| 国产精品xxxav免费视频| 日本精品国产| 亚洲精选久久| 亚洲一区二区三区久久久| 欧美日韩国产传媒| 久久久影院免费| 91精品一区二区三区综合在线爱| 日韩不卡一区| 成人三级高清视频在线看| 精品视频免费| 免费在线观看一区| 国产精品一国产精品| 欧美日韩一区二区三区四区在线观看| 亚洲精品日本| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲播播91| 成人福利av| 国产精品yjizz视频网| 国产69精品久久| 97精品国产一区二区三区| 国产精品久久久久久久久久10秀 | 久久久久久夜| 久久久久久一区二区| av在线最新| 久久国产欧美| 国产主播一区| 国产视频久久| 亚洲专区视频| 欧美日韩18| 美女久久久久久| 久久久久久婷| 91精品一区二区三区综合在线爱| 亚洲高清成人| 欧美日韩视频一区二区三区| 免费中文字幕日韩欧美| 亚洲毛片在线| 国产精品99精品一区二区三区∴| 国产一区二区三区四区| 亚洲精品国产嫩草在线观看 | 9久re热视频在线精品| 欧美综合国产| 青草av.久久免费一区| 卡一精品卡二卡三网站乱码| 激情国产在线| 夜夜嗨av一区二区三区网站四季av| 久久福利精品| 亚洲精品成a人ⅴ香蕉片| 久久国际精品| 国产精品毛片一区二区在线看| 激情综合网址| 综合亚洲视频| 欧美激情精品| 久久久久国产一区二区| 午夜在线播放视频欧美| 欧美久久久网站| 国产 日韩 欧美 综合 一区| 精品欧美一区二区三区在线观看| 91久久午夜| 日韩av网站免费在线| 精品欧美视频| 欧美美女一区| 天堂va欧美ⅴa亚洲va一国产| 鲁大师精品99久久久| 99精品在线免费在线观看| 最新国产精品| 国产91在线精品| 在线视频精品| 国产精品成人3p一区二区三区| 欧洲一级精品| 亚洲人成精品久久久| 国产一区调教| 香蕉成人久久| 精品久久网站| 久久成人亚洲| 国产一区一一区高清不卡| 亚洲一区二区三区四区五区午夜| 日韩不卡免费视频| 欧美精品高清| 日韩一区免费| 偷拍精品精品一区二区三区| 中文字幕av一区二区三区人| 精品三级在线| 快she精品国产999| 精品三级av| 伊人久久一区| 日韩精品电影| 欧美日韩1区| 亚洲欧美日韩高清在线| 欧美黄页在线免费观看| 99热精品在线| 国产一区丝袜| 综合激情视频| 国产超碰精品| 欧美午夜三级| 99pao成人国产永久免费视频| 免费在线亚洲| 亚洲一区二区三区在线免费| 麻豆视频在线看| 欧美中文高清| 视频在线在亚洲| 亚洲成人不卡|