电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Spring如何處理表單提交

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

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

看這邊文章之前,你至少應(yīng)該了解基于Spring的Web開發(fā)的基礎(chǔ)知識,當(dāng)然,你還是應(yīng)該準(zhǔn)備好開發(fā)環(huán)境:

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

準(zhǔn)備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>

創(chuàng)建Controller

我們已經(jīng)知道可以通過Controller來進(jìn)行URL路由,Spring WebMvc框架會將Servlet容器里收到的HTTP請求根據(jù)路徑分發(fā)給對應(yīng)的@Controller類進(jìn)行處理、而 @RequestMapping注解表明該方法處理那些URL對應(yīng)的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請求,我們進(jìn)行表單的處理,然后將打招呼的信息渲染到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>好吧啦網(wǎng): 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}'表示用來搜集的表單數(shù)據(jù)的對象時helloMessage,即用戶輸入信息將存儲于這個對象中 兩個表單域分別增加了屬性th:field='*{name}'和th:field='*{message}',這就是將一個表單域綁定到特定的對象屬性

處理表單

把處理表單的Controller代碼再單獨(dú)拿出來:

@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中根據(jù)參數(shù)名稱逐個獲取信息,然后自己去設(shè)置對應(yīng)對象屬性的場景一定會歷歷在目,那叫慘絕人寰哪。現(xiàn)在我們只需專注于Model的業(yè)務(wù)邏輯處理了,Spring MVC和Thymeleaf這對黃金組合幫我們搞定了表單和對象綁定這樣繁瑣的事情。

Run起來

這應(yīng)該是你很熟悉的代碼了:

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標(biāo)注做的事情參考這里,mvn spring-boot:run或在IDE中運(yùn)行main()方法就可以看到效果了!​不用裝Web服務(wù)器不用部署就能直接Run Web應(yīng)用的感覺確實(shí)很酸爽!

當(dāng)然,一個成熟的應(yīng)用,通常還需要做表單的驗(yàn)證操作,即確保用戶提交上來的數(shù)據(jù)是合法而且有效的!且待下回分解!

以上就是Spring如何處理表單提交的詳細(xì)內(nèi)容,更多關(guān)于Spring處理表單提交的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 北京亦庄厂房出租_经开区产业园招商信息平台 | 办公室家具_板式办公家具定制厂家-FMARTS福玛仕办公家具 | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 影合社-影视人的内容合作平台| 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 山东包装,山东印刷厂,济南印刷厂-济南富丽彩印刷有限公司 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 长信科技产业园官网_西安厂房_陕西标准工业厂房 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 高低温老化试验机-步入式/低温恒温恒湿试验机-百科 |