SpringMVC实现JSON与前台交互
这几天忙着做学校的项目,感觉好久没有更新博客了,来整理一下。
由于要实现的功能是表单联动,只能自己去写ajax来实现提交给后台接口了,好久没有写前端,好多东西都忘记了,只能可怜巴巴的用原生的js去实现。
特此总结一下:首先要使用SpringMVC来接收和返回JSON格式的数据,必须要先配置:
在spring-mvc.xml加上如下配置:
<mvc:annotation-driven />
由于使用的是maven项目,因此需要加上相关dependency:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-lgpl</artifactId>
<version>1.8.1</version>
</dependency> <dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-lgpl</artifactId>
<version>1.8.1</version>
</dependency>
在controller里这样写:
// 区域表单联动查询
@RequestMapping(value = "/basicinfo/area/getChild.action" , method = {RequestMethod.POST })
public @ResponseBody List<Area> getChild(@RequestBody Area area ) {
System.out.println(area.getParentId()+"-----");
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("parentId", area.getParentId());
List<Area> dataList = areaService.find(map);
return dataList;
}
注意:前台ajax提交过来的参数映射进被@RequestBody注解的Area类,因此,ajax里的参数名称必须要和Area类里的参数名称一致,否则会出现HTTP请求415,类型不支持的情况。返回到list数据也要加上注解。
在js里应该这样写:
//val 提交隐藏域,并且调用ajax去联动第二个表单
function setFirstParent(val) {
var element = document.getElementById("fp");
element.value = val;
var param = {
"parentId" : val
};
var select = document.getElementById("secondSelect");
//先清空,在添加一个请选择
$("#secondSelect").find("option").remove();
var option = document.createElement("option");
option.setAttribute("value", "0");
option.appendChild(document.createTextNode("--请选择--"));
select.appendChild(option);
$.ajax({
url : "${pageContext.request.contextPath}/basicinfo/area/getChild.action", //请求地址
type : "POST", //请求方式
data : JSON.stringify(param), //请求参数
dataType : "json",
contentType : 'application/json;charset=utf-8', //指定为json类型
success : function(response) {
for (var i = 0; i < response.length; i++) {
var option = document.createElement("option");
option.setAttribute("value", response[i].id); //添加value
option.appendChild(document
.createTextNode(response[i].areaName)); //添加显示的内容
select.appendChild(option);
}
},
fail : function(status) {
alert("接口调用异常");
}
});
}
在第一个下拉菜单的onchange事件里调用相关的参数来查询第二个下拉菜单,注意在联动查询之前,需要先清空当前菜单的options然后再添加进去。
SpringMVC实现JSON与前台交互的更多相关文章
- spring MVC通过json与前台交互
这里用的是spring4.1.4,jquery2.1.3,其它环境为:myeclipse2014,tomcat7,jdk7 首先,新建一个web工程,并导入springMVC的jar包(为了方便起见我 ...
- springmvc实现json交互 -requestBody和responseBody
json数据交互 1.为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. 2. ...
- SpringMVC的JSON数据交互(七)-@Response,@RestController,@RequestBody用法
1.@RequestBody (自动将请求的数据封装为对象) 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConve ...
- SpringMVC 返回json的两种方式
前后台数据交互使用json是一种很重要的方式.本文主要探讨SpringMVC框架使用json传输的技术. 请注意,本文所提到的项目使用Spring 版本是4.1.7,其他版本在具体使用上可能有不一样的 ...
- SpringMVC学习--json
简介 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便.比如:webservice接口,传输json数据. springmvc与json交互 @RequestB ...
- springMVC学习总结(四)springmvc处理json数据类型以及fastjson的使用
springMVC学习总结(四)springmvc处理json数据类型以及fastjson的使用 主要内容: 这篇文章主要是总结之前使用springmv接收json的时候遇到的问题,下面通过前台发送a ...
- SpringMVC接受JSON参数详解及常见错误总结我改
SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...
- SpringMVC接受JSON参数详解及常见错误总结
SpringMVC接受JSON参数详解及常见错误总结 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一 ...
- 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
随机推荐
- [转载] 从Hadoop到Spark的架构实践
转载自http://www.csdn.net/article/2015-06-08/2824889 http://www.zhihu.com/question/26568496 当下,Spark已经在 ...
- javascript内存管理(堆和栈)和javascript运行机制
内存基本概念 内存的生命周期: 1.分配所需的内存 2.内存的读与写 3.不需要时将其释放 所有语言的内存生命周期都基本一致,不同的是最后一步在低级语言中很清晰,但是在像JavaScript 等高级语 ...
- 将下载到本地的JAR包手动添加到Maven仓库
<!-- https://mvnrepository.com/artifact/ojdbc/ojdbc --><!-- (参数一):下载到本地的ojdbc-10.2.0.4.0.ja ...
- React服务器端渲染值Next.js
昨天leader给分配了新任务,让熟悉一下ssr,刚开始有点懵,啥玩意?百度了一下,不就是服务器端渲染(server side render,简称: ssr). ssr简介 服务端渲染一个很常见的场景 ...
- 用lua+redis实现一个简单的计数器功能 (一)
首先安装环境 依赖环境有 luajit http://luajit.org ngx_devel_kit https://github.com/simpl/ngx_devel_kit echo-ngin ...
- PE文件格式分析
PE文件格式分析 PE 的意思是 Portable Executable(可移植的执行体).它是 Win32环境自身所带的执行文件格式.它的一些特性继承自Unix的Coff(common object ...
- Innodb中的锁
Innodb中的锁 共享锁和排它锁(Shared and Exclusive Locks)共享锁和排它锁是行级锁,有两种类型的行级锁 共享锁(s lock)允许持有锁的事务对行进行读取操作 排它锁(x ...
- ##5.1 Nova控制节点-- openstack pike
##5.1 Nova控制节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##5.1 Nova控制节点 # co ...
- heartbeat+DRBD 高可用 双机热备
heartbeat+DRBD 高可用 双机热备 原创博文http://www.cnblogs.com/elvi/p/7658109.html ## heartbeat+DRBD 高可用 双机热备 # ...
- ChatterBot之快速入门01
本人运行环境为Python 3.5.2; 首先你需要导入chatterbot 的包,如果没有你先需要下载 使用命令 pip install chatterbot 1 # -*- coding: utf ...