手机端小强原创文章,java小强个人博客站点
当前位置: 首页 >> 开源 >> SpringMVC下Ajax数据提交和解析

SpringMVC下Ajax数据提交和解析

45400 开源 | 2015-7-9

SpringMVC如果返回给Ajax内容的话,需要用一个注解@ResponseBody,返回内容的格式是自定义的,这里我返回一个Map,Map中有一个List和一个字符串。
一般返回时我们会把返回内容转为JSON即JSONObject,但是如果你不转化,直接返回也是可以的。
这里就写两个方法,一个转为JSONObject,一个没有转。

 

@RequestMapping(value = "/test")
@ResponseBody
public JSONObject test(HttpServletRequest request) {
 String a = request.getParameter("a");
 String b = request.getParameter("b");
 System.out.println("====>" + a);
 System.out.println("====>" + b);
 Map<String, Object> map = new HashMap<String, Object>();
 List<String> list = new ArrayList<String>();
 list.add(new String("a"));
 list.add(new String("b"));
 map.put("key1", list);
 map.put("key2", new String("i am key2"));
 JSONObject result = JSONObject.fromObject(map);
 return result;
}
@SuppressWarnings("unchecked")
@RequestMapping(value = "/test2")
@ResponseBody
public Map test2(HttpServletRequest request) {
 String a = request.getParameter("a");
 String b = request.getParameter("b");
 System.out.println("====>" + a);
 System.out.println("====>" + b);
 Map<String, Object> map = new HashMap<String, Object>();
 List<String> list = new ArrayList<String>();
 list.add(new String("a"));
 list.add(new String("b"));
 map.put("key1", list);
 map.put("key2", new String("i am key2"));
 return map;
}

 

打印收到的参数,这里并没有做处理。返回的内容格式可以从Java代码中看到。

 

HTML代码如下,注意导入JQuery,知道eval的使用(JSON简介与JS解析JSON )。基本使用格式都是一样的,传入参数,解析返回内容。
console.log()是在浏览器打印信息,你可以F12打开开发窗口,然后查看打印和一些其他信息。

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Ajax测试-java小强</title>
    <script type="text/javascript" src="<%=basePath %>Scripts/jquery-1.7.2.js"></script>
    <script type="text/javascript">
    function submitMe(){
     var a=$('#a').val();
     var b=$('#b').val();
     // 注意对该路径权限上放行
     var url="<%=request.getContextPath()%>/login/test";
  $.ajax({
   url:url,
   type:"post",
   async:false,// 声明ajax同步执行
      data:{
      "a":a,
      "b":b
      },
      dataType:"text",
      success:function(data){
       if(data!=null){
        console.log("返回内容:"+data);
           var jsonObj = eval("(" + data + ")");//把总数据转成json
           if(jsonObj != null){
               var key1 = jsonObj.key1;
               var key1Len = key1.length; //得到总数据的个数
               if(key1Len>0){
                for (var i = 0; i < key1Len; i++) {
                 var obj = key1[i];
                 console.log("第"+i+"参数值:"+obj);
                }
               }
               console.log("==================");
               var key2 = jsonObj.key2;
               console.log("key2值:"+key2);
              }
       }
   }
  }); 
    }
    </script>
</head>
<body>
<form action="">
<table>
<tr>
<td>
<input name="a" id="a"/>
</td>
</tr>
<tr>
<td>
<input name="b" id="b"/>
</td>
</tr>
<tr>
<td>
<input type="button" onclick="submitMe()" value="Ajax提交"/>
</td>
</tr>
</table>
</form>
</body>
</html>

 

我这里写的是test,可以直接修改为test2,其他代码不动,效果一样。

浏览器点击后打印效果如下:

 

SpringMVC下Ajax数据提交和解析

推荐您阅读更多有关于“ spring ajax springmvc JQUERY 异步提交 ”的文章

上一篇:dz去掉帖子图片附件下载提示 下一篇:Can not write to the data/tmp folder

猜你喜欢

发表评论:

个人资料
blogger

java小强
没有思考,人生的路会越走越难!

搜索
分类
最新微语
  • 又弄完一个项目,累成狗,但是感觉又进步不少,除了很多坑已经踩过,做起来也是轻车熟路。同时也认识到,程序不在于你多牛逼,而是在乎你的细节把控度,而细节的关注,是一个优秀程序员必须要注意的。另外,要相信自己,勇敢向前,没人生下来就是成功的,而且,成功的路,比成功本身更重要。

    2017-06-30 09:46

  • 今日北京再次沙尘暴来袭,吃了几年细粮,终于能来口粗粮了,不过大早上看见这场景,还是吓我一跳,不过随后就平静了,毕竟是老朋友了。进公司又发现一股烤糊的味道,真是祸不单行啊,例外都是污染。发了两个口罩,开启保护模式。

    2017-05-04 10:16

  • 今天同学问我,最近还在写代码吗?我想了想,这个问题怎么回答呢,我好像确实很长时间,虽然写了一些,但是主要内容已经不是写代码了。然后再想想,自己也7年多了,这么多年了,我收获了什么,我的目标到底是什么。眼看就奔三了,人生啊,开启感叹模式。

    2017-03-30 22:52

  • 也许大家都已经注意到了,今年的房价,好多地方都是翻了一番,跟着就是,各地房东开始变相涨租。今年之所以搬走,就是为此,这两天同学也是如此。很多房东只认钱,别谈感情,伤钱。而对于这个城市来说,你怎么定位自己,你真把自己当成她的一份子?你来此为何?将来何去何从?自己掂量清楚。

    2016-12-05 10:03

  • 为什么一直不写了呢?因为当爸爸了,没空了。今年的冬天,有些寒冷,除了这寒冬带来的不适,更有因乐视公司遇到危机,而带来的同事别离。送别同事,看着空旷的工位,心中有些悲凉。临近年关,此时此刻,该怎么做,似乎不再是脑子一热那么简单了。

    2016-11-24 11:28

  • 更多»

最新文章
热门文章
随机文章