在上篇的基础上
准备工作 :
修改 pom.xml
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <podelversion> 4.0.0 </modelversion> <groupid> com.github.carter659 </groupid> <Artifactid> Spring03 </arttifactid> </groupid> <ArTifacTid> Spring03 </arttifactid> <versi> 0.0.0.0.0.0.0.0.0.0.1.1.10.0.0.0.0.0.0.0.0.0.0.0.1RAPAGED> SPRING03 </ARTIFACTID> <versi> 0.0.0.0.0.0.0.0.0.0.0.0.1RAPAGE <name> spring03 </name> <rerl> http://maven.apache.org </ruRl> <partent> <groupid> org.springframework.boot </proupid> <ArTifactId> Spring-Bootter-Parent </arttifactid> <preate> 1.4.2.2.release </Version> </Artifactid> <preate> <preate> 1.4.2. <Project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <Java.Version> 1.8 </java.version> </Properties> </ArtiCtid> <TroGacTID> <TROPICTIDREAF.SPRINGRAMEWORK.BOOT </groupid> <trotifacd> </Dependency> <dependency> <GroupId> org.springframework.boot </groupid> <ArtifactId> Spring-boot-devtools </artifactid> <plugin> </opsional> </dependency> </dependencies> <build> <lugin> <lugin> <groupid> <groupid> </org.springfr. <ArTifactId> spring-boot-maven-plugin </artifactid> </lugin> </lugin> </build> </poject>
修改 App.java
package com.github.carter659.spring03;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); }}新建 “order.java” 类文件 :
Paket com.github.carter659.spring03; import java.util.date; pesanan kelas publik {public string no; tanggal tanggal publik; kuantitas int publik;}说明一下 : 这里我直接使用 publik 字段了 , dapatkan/atur 方法就不写了。
新建控制器 “MainController” :
Paket com.github.carter659.spring03; import java.time.zoneid; import java.util.hashmap; import java.util.map; impor org.springframework.stereotype.controller; impor org.springframework.web.ngind.annotype. org.springframework.web.bind.annotation.postmapping; impor org.springframework.web.bind.annotation.requestbody; indeks org.springframework.web.bind.annotation.responstrody; @controllerPlic kelas maincontroller {"get (" @contronsebody; "@contronstryponsy; } @GetMapping ("/jQuery") public string jQuery () {return "jQuery"; } @GetMapping ("/angularjs") public string angularjs () {return "angularjs"; } @PostMapping ("/PostData") public @ResponseBody Map <String, Object> PostData (String No, Int Kuantitas, Tanggal String) {System.out.println ("Tidak:" + Tidak); System.out.println ("Kuantitas:" + Kuantitas); System.out.println ("Tanggal:" + Tanggal); Peta <String, Object> MAP = HashMap baru <> (); peta.put ("msg", "ok"); peta.put ("kuantitas", kuantitas); peta.put ("tidak", tidak); peta.put ("tanggal", tanggal); peta mengembalikan; } @PostMapping ("/POSTJSON") public @ResponseBody Map <String, Object> Postjson (@RequestBody Order Order) {System.out.println ("Pesanan No:" + order.no); System.out.println ("Kuantitas pesanan:" + order.quantity); System.out.println ("Tanggal Pesanan:" + order.date.toinstant (). Atzone (zonaid.systemdefault ()). TolocalDate ()); Peta <String, Object> MAP = HashMap baru <> (); peta.put ("msg", "ok"); peta.put ("nilai", pesanan); peta mengembalikan; }}新建 jQuery.html 文件:
<! Doctype html> <html xmlns: th = "http://www.thymeleaf.org"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8" src = "// cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>< script type =" text/javascript ">/*<! [Cdata)./Function PostData () {var data = 'no =' + $ $ ('#'). '& date =' + $ ('#date'). val (); $ .AJAX ({type: 'POST', URL: '/PostData', Data: Data, Success: function (r) {console.log (r);}, error: function () {alert ('error!')}}); } function postjson () {var data = {no: $ ('#no'). val (), kuantitas: $ ('#kuantitas'). val (), tanggal: $ ('#date'). val ()}; $ .AJAX ({type: 'POST', ContentType: 'Application/JSON', URL: '/POSTJSON', Data: json.stringify (data), Success: function (r) {console.log (r);}, error: function () {waspada ('error!')}}); } /*]]>* /</script> </head> <body> Tidak: <input id = "no" value = "no.1234567890" /> <br /> kuantitas: <input id = "kuantitas" value = "100" /> <br /> Tanggal <input id = "date" value = "2016-12" " /> <" Dat /<"Input =" Tanggal "Nilai =" 2016-12 " /" /<" /<" Input = "Tanggal" Value = "2016-12" " OnClick = "postData ()" /> <br /> <input value = "postjson" type = "tombol" ontClick = "postjson ()" /> </body> </html>新建 “AngularJs.html” : :
<! Doctype html> <html xmlns: th = "http://www.thymeleaf.org"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8" src = "// cdn.bootcss.com/angular.js/1.5.6/angular.min.js"></script> <script type =" text/javascript "> var app = angular.module ('app', []); app.controller ('MainController', function ($ rootscope, $ scope, $ http) {$ scope.data = {no: 'No.1234567890', kuantitas: 100, 'Tanggal': '2016-12-20'}; $ scope.postjson = function () {) {{) {{{'{' {'2016-12-20; Data: $ scope.data}). Sukses (fungsi (r) {$ scope.responseBody = r;}); NG-Model = "data.quantity" /> <br /> tanggal: <input id = "date" ng-model = "data.date" /> <br /> <input value = "postjson" type = "tombol" ng-klick = "postjson ()" /<br /> <bR /<br /> <v> {{{{{{{{{{{br /> < /> < /{{{{{{{{{BR />项目结构如下图 :
一、结合 jQuery
运行 app.java 后进去 “http: // localhost: 8080/jQuery” 页面
点击 “Postdata” 按钮 :
jQuery 成功的调用了 Spring MVC 的后台方法 “Public @ResponseBody Map <String, Object> PostData (String No, Int Kuantitas, Tanggal String)”
这里 , “Tanggal” 参数我使用的是 String 类型 , 而并不是 Tanggal 类型。因为大多数情况是使用对象形式来接收 Ajax 客户端的值 , 所以我这里偷懒了 , 就直接使用 String 类型。如果想使用 Tanggal 类型 , 则需要使用 @Initbinder 注解 , 后面的篇幅中会讲到 , , ,
另外 , 使用 “thymeleaf” 模板引擎在编写 js 时 , “&” 关键字要特别注意 , 因为 “thymeleaf” 模板引擎使用的是 xml 语法。因此 , 在 <script> 标签的开始 ―6 “/*<! [Cdata [*/...../*]>*/”
例如 :
<type skrip = "Text/JavaScript">/*<! [Cdata [*/// kode javascript .../*]]>*/</script>
否则 , 运行 “thymeleaf” 模板引擎时就会出现错误 “org.xml.sax.saxparseException: ...”
点击 “Postjson” : :
jQuery 则成功调用了后台 “peta @ResponseBody public <string, Object> Postjson (@RequestBody Order Order)” 方法 ,
并且参数 “memesan” 中的属性或字段也能被自动赋值 , 而 tanggal 类一样会被赋值。
注意的是 : 在使用 jQuery 的 $ .AJAX 方法时 , ContentType 参数需要使用 “Application/JSON” , 而后台 Spring MVC 的 “Postjson” 方法中的 “Order” 参数也需要使用 @RequestBody 注解。
二、结合 AngularJS
进入 “后进去 http: // localhost: 8080/angularjs” 页面
点击 “Postjson” : :
使用 AngularJS 后 , 依然能调用 “Public @ResponseBody Map <String, Object> Postjson (@RequestBody Order Order)” 方法。
代码 : https: //github.com/carter659/spring-boot-03.git
以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。