Post 方式

1、自动注入

  a. pom.xml ---- 配置Maven,添加必要的jar包

 <!--用于 String-JSONObject 转换 -->
<dependency>
<groupId>org.json</groupId>
<artifactId>org.json</artifactId>
<version>chargebee-1.0</version>
</dependency> <!--用于 SpringMVC 注入 -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.8</version>
<type>jar</type>
<scope>compile</scope>
</dependency>

  b.application-servlet.xml 创建 AnnotationMethodHandlerAdapter

 <!-- 方式1 -->
<mvc:annotation-driven />
<!-- 方式2 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- 两种方式等价的,mvc:annotation-driven 会自动注册方式2中的连个bean -->

  c.前端jsp页面 ---- Jquery的ajax

 <!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
$(function() {
function ajaxtest(){
var seaText = $("#search").attr("value");
var data={};
data.serachdata = seaText;
var url = "${pageContext.request.contextPath}/search1"
$.ajax({
url : url,
type : 'post',
dataType : 'json',
data:JSON.stringify(data),
contentType : "application/json; charset=utf-8",
success:function(result){
console.log(result);
}
}
);
}
$("#search").on("keyup", ajaxtest);
}//end ready
</head>
</script>
<body>
<div>
<input id="search" type="text" name="search">
<input id="btn1"type="submit" value="Search">
</div>
</body>
</html>

  d.Controller 代码

  SpringMVC 根据@RequestMapping将前端的ajax请求映射到search 的controller,AnnotationMethodHandlerAdapter会把request中的json对象,采用合适方式自动转换成Map对象  ★★

 @RequestMapping(value = "search",method = RequestMethod.POST)
@ResponseBody public String search(@RequestBody HashMap<String, String> hasmap)throws Exception{
List<String> resultList = testMapper.searchByKeyWords(hasmap.get("serachdata")+"%");
return new org.json.JSONArray(resultList).toString();
}

2. 通过HttpServletRequest request来接收json

  这种方式是比较常见的这里,我这给出Controller的代码:

 @RequestMapping(value = "search",method = RequestMethod.GET)
@ResponseBody public String search(HttpServletRequest request ,HttpServletResponse response)throws Exception{
org.json.JSONObject jsonob = new JSONObject(request.getParameter("jsonobj"));
List<String> resultList = testMapper.searchByKeyWords("a%");
return new org.json.JSONArray(resultList).toString();
}

Get 方式

  由于get是通过URI传递参数的,所以没有办法使用自动注入,只能通过request来接收参数,Controller与post方式的类似。

第一篇博文啊!希望大家多多指点....

Spring MVC ajax:post/get 的具体实现的更多相关文章

  1. spring mvc ajax 提交复杂数组类型

    The server refused this request because the request entity is in a format not supported by the reque ...

  2. spring mvc ajax异步文件的上传和普通文件上传

    表单提交方式文件上传和ajax异步文件上传 一:首先是我在spring mvc下的表单提交方式上传 ssm的包配置我就不一一详细列出来了,但是上传的包我还是列出来 这一段我也不知道怎么给大家讲解就是直 ...

  3. Spring MVC+ajax进行信息验证

    本文是一个ajax结合Spring MVC使用的入门,首先我们来了解一下什么是Ajax AJAX 不是新的编程语言,而是一种使用现有标准的新方法.AJAX 最大的优点是在不重新加载整个页面的情况下,可 ...

  4. spring mvc ajax请求

    jar包中增加 jackson-annotations-2.5.0.jar jackson-core-2.5.0.jar jackson-databind-2.5.0.jar springmvx.xm ...

  5. spring mvc ajax 400解决

    The request sent by the client was syntactically incorrect. ajax发起请求时报400错误.请求代码如下: var reportId=($( ...

  6. spring mvc ajax返回值乱码

    加入如下配置: <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHan ...

  7. spring mvc+ajax分页

    分页大致思路:页面每次把当前页传到后台并获得从后台传过来的json数据,解析后布局到这个页面上. 1.服务端代码: @Controller public class MemcachedContrlle ...

  8. spring mvc ajax

    <%@ page contentType="text/html;charset=UTF-8" %> <%@ include file="/WEB-INF ...

  9. Spring MVC Ajax 嵌套表单数据的提交

    概述 在一些场景里,某个大表单里常常嵌套着一个或若干个小逻辑块,比如以下表单里"设计预审"中包括了一个子模块表单"拟定款项". 在这种情况下该怎么去设计实体类以 ...

随机推荐

  1. C语言 memcpy二维数组的复制

    今天在实现二维数组的复制功能时,竟然出现了好多问题,还是太不小心了. 我们知道,平时进行矩阵复制,无非是二重循环进行赋值操作,所以今天想改用利用memcpy进行复制操作,当然一维数组的复制在上一篇文章 ...

  2. handlebars使用总结

    对自己使用handlebars做一个小总结,以后忘记了,好有地方看一下,不会用的小伙伴也可以借鉴一下,写的不好. 使用 Handlebars的安装是比较简单和方便的;handlebars是一个纯JS库 ...

  3. 使用jQuery快速高效制作网页交互特效

    第四章:JQuery选择器 1.Jquery选择器简介 (1) Jquery中的选择器完全继承了CSS的风格,利用Jquery选择器,可以非常便捷和快速的找出特定的Dom元素,然后为他们添加相应的行为 ...

  4. windows下读取utf-8文件

    #include <stdio.h> #include <tchar.h> #include <memory> int main() { FILE* fp1 = f ...

  5. 201521123014 java第一周总结

    201521123014 java第一周总结 1.本周学习总结 刚认识这一门新语言,我就充满了好奇心,想看看Java和学过C语言,C++有什么区别.在这一周的学习中,我认识到,对于初学者而言,Java ...

  6. 剑指offer编程题Java实现——面试题11数值的整数次方

    题目: 实现函数double power(double base,int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:最一般的方法实现数值 ...

  7. 2017 3-4/5 两天的学习的REVIEW

    明天就要去面试啦,去感受一下,估计又是一顿虐,蓝瘦-- 3月4日:计算机安全基础技术与原理方面的学习 密码体制(密码)由五个部分组成: 消息空间(m),密文空间(c),密钥空间(k),加密算法(E), ...

  8. php 与redis 结合 使用predis

    分为2步骤 1.下载predis 2.使用predis,让php与redis进行通信 <?php require('autoload.php'); $redis = new Predis\Cli ...

  9. Linux下修改系统时区

    使用 /etc/localtime 文件修改时区 先查看一下当前的时区,下面这个例子中使用 UTC 即世界统一标准时区.假设你可能需要改为美国西部标准时间,即太平洋时间. # date Thu Aug ...

  10. 使用Microsoft.ExceptionMessageBox.dll捕获WinForm程序中异常信息并弹窗显示

    WinForm程序开发中,在开发模式下对于异常的处理一般都是通过调试的方式来查找异常发生的未知与原因. 下面以“除数为0”的情况来具体说明. Button按钮事件如下: private void bu ...