因为spring3和spring4的mvc在前端返回json所需要的jar包不一样,所以索性写一篇关于spring4mvc在前端返回json的博文。

首先,新建一个web项目,项目格式如图所示:

convertJsonAction:springmvc的action类

inde.jsp:有三个按钮,分别返回bean,list和map对应的json

然后是引入的library:分别是spring-core,spring-mvc,spring-web,spring4mvc-jackson

tips:spring4的mvc引入的jackson跟spring3的mvc引入的jar包不一样!!!不一样!!!!

spring-core:

spring-mvc:

spring-web:

spring4mvc-jackson:

接着是配置web.xml

因为springmvc是servelet,所以在web.xml中配置的就是一个servlet,在web.xml中添加如下代码

 <servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 将配置对应的springmvc文件设置在src根目录下 -->
<param-value>classpath:springmvc.xml</param-value>
</init-param> </servlet> <servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>

然后在src下面新建一个叫springmvc的xml文件,文件内容如图所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"> </beans>

接着我们在ConvertJSonAction.java类中添加一个方法:

package com.mz.json;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; /**
* controller指明这是一个springmvc的action类
* requestMapping是总的路径,所有访问这个action类中的方法必须通过/convert
* @author asus
*
*/
@Controller
@RequestMapping("/convert")
public class ConvertJsonAction {
//responseBody是指返回的User是一个json对象(也可以是string或者xml对象)
@RequestMapping("/bean2json")
public @ResponseBody User bean2json() {
User user = new User();
user.setId(1);
user.setUsername("Irasel");
return user;
}
}

这是action的处理类,接着我们在springmvc中配置开启mvc的annotation和扫描标签:

<mvc:annotation-driven />
<context:component-scan base-package="com.mz.json"></context:component-scan>

index.jsp中添加三个按钮,每一个按钮分别对应的返回一个bean对象的json,list对象的json和map对象的json:

 <!-- 点击返回一个bean对象的json -->
<input type="button" value="bean2json"><br/>
<!-- 点击返回一个list对象的json -->
<input type="button" value="list2json"> <br/>
<!-- 点击返回一个map对象的json -->
<input type="button" value="map2json"><br/>

使用jquery的异步传输:

    $(':button:first').click(function(){
var url = 'convert/bean2json.action';
var arg =null;
$.post(url,arg,function(returnData){
console.log(returnData);
});
});

效果如图所示:

接着是list和map的方法(不再粘贴效果图了,反正都差不多)

    @RequestMapping("/list2json")
public @ResponseBody List<User> list2Json() {
List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setId(1);
user1.setUsername("Irasel");
User user2 = new User();
user2.setId(2);
user2.setUsername("路西法");
User user3 = new User();
user3.setId(3);
user3.setUsername("Micheal");
users.add(user1);
users.add(user2);
users.add(user3);
return users;
}
@RequestMapping("/map2json")
public @ResponseBody Map<String, Object> map2Json() {
List<User> users = new ArrayList<User>();
Map<String, Object> map = new HashMap<String, Object>();
User user1 = new User();
user1.setId(1);
user1.setUsername("Irasel");
User user2 = new User();
user2.setId(2);
user2.setUsername("路西法");
User user3 = new User();
user3.setId(3);
user3.setUsername("Micheal");
users.add(user1);
users.add(user2);
users.add(user3);
map.put("row", users.size());
map.put("users", users);
return map; }

spring4mvc返回json(bean,list,map)的更多相关文章

  1. 配置SpringMVC返回JSON遇到的坑

    坑一:官方网站下载地址不明朗,最后找了几个下载地址:http://wiki.fasterxml.com/JacksonDownload Jackson2.5下载地址:jackson2.5.0.jar ...

  2. Spring-MVC填坑之旅-返回json数据

    本文是自己开发中所遇到的问题,对一些及百度到的解决方案做一个记录. DispatcherServlet配置文件 <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean i ...

  3. java中 json和bean list map之间的互相转换总结

    JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib]   在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...

  4. spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

    1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...

  5. spring mvc返回json字符串的方式

    spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json            优点:不需要自己再处理 步骤一:在spring- ...

  6. spring入门(七)【springMVC返回json串】

    现在多数的应用为了提高交互性多使用异步刷新,即在不刷新整个页面的情况下,只刷新局部,局部刷新用得最多就是ajax,ajax和后台进行交互的数据格式使用的最多的是JSON,这里简单描述,在springm ...

  7. springMVC使用@ResponseBody返回json

    json格式:{"totle":22,"rows":"sss"} map格式:{totle=22, rows=sss} 一.springMV ...

  8. 深入了解Struts2返回JSON数据的原理

    首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  9. [转]SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意

    一.SpringMVC使用@ResponseBody时返回json的日期格式 前提了解: @ResponseBody 返回json字符串的核心类是org.springframework.http.co ...

随机推荐

  1. php js数组问题

    <script type="text/javascript"> var a = new Array(); a = "a"; a = "b& ...

  2. mysql_connect() php7不支持,php5.5可以,是废弃函数

    天用了PHP7,发现和PHP5变化还挺大的,最大的就是MySQL的连接库变了. PHP5中使用mysql_connect()函数进行连接,但实际上,PHP5.5开始,MySQL就不推荐使用了,属于废弃 ...

  3. hdu3068马拉车

    其实马拉车还真是最好理解的算法(感觉初中的时候好像讲过类似的,但是当时就没有认真听) 没想到一个简单的优化能变成O(n),感觉碉堡 不说了,马拉车裸题,我在写的时候只保留了id,没保留mx,希望能形成 ...

  4. 2-Sat问题

    二分+2-Sat 判断是否可行 输出字典序最小的解 输出字典序可行解 其实这些都是小问题,最重要的是建图,请看论文. 特殊的建边方式,如果a b是一对,a必须选,那么就是b->a建边. HDU ...

  5. 我听说 C...

    我听说在 c 语言的世界里,goto 和异常处理都是声名狼藉的东西,而我认为它们在一起就能化解各自的问题.

  6. 测试 MathJax 排版功效

    这是第一篇博文,用于检测博客园提供的数学排版功能,下面是一些数学公式. \[ \text{sgn}(\mathbf{w}^T\phi(\mathbf{x})+b) = \text{sgn}\left( ...

  7. AJax登录。。转

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.        AJAX 是一种用于创建快速 ...

  8. C#中常用的读取xml的几种方法(转)

    本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...

  9. angularJs 指令的理解

    指令: 可以把指令理解成为特定的DOM 上运行的函数,指令扩展了这个元素的功能: 例如:ng-click--在DOM元素上绑定了一个click事件的监听,并在监听到事件时运行angular表达式 自定 ...

  10. IRP完成例程返回值理解

    第一,完成例程里面直接返回STATUS_SUCCESS,这时候IRP已经继续向上回卷,失去了对IRP的控制. 第二,完成例程里面返回STATUS_MORE_PROCESSING_REQUIRED,仍具 ...