SpringMVC环境下实现的Ajax异步请求JSON格式数据

时间:2021-05-26

一 环境搭建

首先是常规的spring mvc环境搭建,不用多说,需要注意的是,这里需要引入jackson相关jar包,然后在spring配置文件“springmvc-servlet.xml”中添加json解析相关配置,我这里的完整代码如下:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://plete.js"></script><script type="text/javascript" src="scripts/jquery/jquery.loadmask.js"></script><script type="text/javascript" src="scripts/jquery/jquery.form.js"></script><script type="text/javascript" src="scripts/jquery/jquery.timers.js"></script><title>jQuery i18n</title><script type="text/javascript">$().ready(function() {$("#sub").click(function() {var name = $("#username").val();var age = 18;var user = {"username":name,"age":age};$.ajax({url : 'hello.json',type : 'POST',data : JSON.stringify(user), // Request body contentType : 'application/json; charset=utf-8',dataType : 'json',success : function(response) {//请求成功alert("你好" + response.username + "[" + response.age + "],当前时间是:" + response.time + ",欢迎访问:http://www.zifangsky.cn");},error : function(msg) {alert(msg);}});});});</script></head><body><input type="text" id="username"style="width: 100px; height: 30px; font-size: 20px; font-weight: bold;"><input type="button" id="sub" value="Go"style="height: 40px; height: 30px;"><br></body></html>

(2)一个简单的model类User,代码如下:

package cn.zifangsky.controller;public class User {private String username;private int age;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

(3)controller类TestController.java:

package cn.zifangsky.controller;import java.text.Format;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;@Controller@Scope("prototype")public class TestController {/*** 转到页面*/@RequestMapping(value = "/hello.html")public ModelAndView list() {ModelAndView view = new ModelAndView("index");return view;}/*** ajax异步请求, 请求格式是json*/@RequestMapping(value = "/hello.json", method = { RequestMethod.POST })@ResponseBodypublic Map<String, String> hello(@RequestBody User user) {// 返回数据的Map集合Map<String, String> result = new HashMap<String, String>();Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 返回请求的usernameresult.put("username", user.getUsername());// 返回年龄result.put("age", String.valueOf(user.getAge()));// 返回当前时间result.put("time", format.format(new Date()));return result;}}

关于具体的执行步骤我简单说一下:

i)项目启动后,在浏览器中访问:http://localhost:8089/SpringDemo/hello.html,然后会转到执行controller中的list方法,接着会转到/WEB-INF/jsp/index.jsp(PS:在controller中返回的是逻辑视图,跟在springmvc-servlet.xml文件中定义的路径前缀和后缀进行拼接后合成文件的真正路径)

ii)在index.jsp页面输入文字然后点击按钮,将会触发ajax请求,这个请求会获取输入框中的数据和默认的“age”参数拼接成json格式字符串最后提交到“hello.json”这个请求,也就是执行controller中的hello方法

iii)hello方法执行完毕后会返回一系列数据最后在页面中显示出来

(4)效果如下:

以上所述是小编给大家介绍的SpringMVC环境下实现的Ajax异步请求JSON格式数据的相关内容,希望对大家有所帮助!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章