- 浏览: 865669 次
- 性别:
- 来自: 杭州
最新评论
-
我是你们的爹:
真垃圾
spring MVC之返回JSON数据(Spring3.0 MVC) -
107x:
不错,谢谢!
spring MVC之返回JSON数据(Spring3.0 MVC) -
李君寻:
...
spring MVC之用Handler Interceptor拦截请求 -
tianhandigeng:
讲得非常好
maven3实战之仓库(maven仓库分类) -
dafa1892:
我这样做的时候传中文怎么是乱码那?
spring MVC之处理重定向的传参
spring MVC之返回JSON数据(Spring3.0 MVC)
----------
我们在本示例中,使用Spring3.0 MVC, Spring 3.0 MVC已经支持JSON了。
这里我们使用基于注解的方式,也是springMVC 3.0所支持的RESTFul风格的。
1.首先加入两个jar依赖,这里以maven构建为例:
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.8.4</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.8.4</version> </dependency>
这是spring MVC处理json数据时,所必须的jar依赖。
2.在spring mvc的配置文件中加入配置
这里我们使用的是spring mvc的注解,如例:
<context:component-scan base-package="com.hundsun.twioo.business.action" /> <bean class="org.springframework.web.servlet.mvc.annotation. DefaultAnnotationHandlerMapping" /> <bean class="org.springframework.web.servlet.mvc.annotation. AnnotationMethodHandlerAdapter" > <property name="messageConverters"> <util:list id="beanList"> <ref bean="mappingJacksonHttpMessageConverter"/> </util:list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework. http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <context:annotation-config/>
注意:org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter的Bean配置中,我们加入了messageConverters属性,在该属性中我们有配置mappingJacksonHttpMessageConverter这个Bean,它就是用来处理json数据转换的。
在mappingJacksonHttpMessageConverter的Bean配置中,我们有一个supportedMediaTypes属性,在这个属性
中我们添加了text/html;charset=UTF-8这个值,它是为了处理返回的json数据的编码,默认是ISO-88859-1的,这里我们把它设置为UTF-8,如果有乱码的情况,我们只需要修改这里就可以了。
3.控制器Controller上的注解使用
如例:
@Controller @RequestMapping("/logins") public class LoginController { @Autowired private LoginManagerService loginManagerService; @Autowired private PermitManagerService permitManagerService; private Logger log = Logger.getLogger(LoginController.class); /** * 用户登录系统 * @return */ @RequestMapping(value="/login") public ModelAndView login(HttpServletRequest request,HttpSession session){ User user = null; List<Module> moduleList = null; try { //TwiooID Integer twiooId = ServletRequestUtils.getIntParameter(request, "twiooId"); //群ID Integer groupId = ServletRequestUtils.getIntParameter(request, "groupId"); user = loginManagerService.login(twiooId, 3); if(null != user){ moduleList = permitManagerService.findPermit(user.getId()); } session.setAttribute("user", user); session.setAttribute("permit", moduleList); session.setAttribute("twiooId", twiooId); session.setAttribute("groupId", groupId); } catch (Exception e) { e.printStackTrace(); log.error("LoginController.login() execute error!!!"); } System.out.println("login..................."); return new ModelAndView("index"); } /** * 用户退出系统 * @return */ @RequestMapping(value="/exit") public ModelAndView exit(HttpServletRequest request,HttpSession session){ session.removeAttribute("user"); session.removeAttribute("permit"); session.removeAttribute("twiooId"); session.removeAttribute("twiooId"); System.out.println("exit...................."); return new ModelAndView("index"); } /** * 测试返回JSON数据 * @param session * @return */ @RequestMapping(value="/test") @ResponseBody public Object test(HttpSession session){ System.out.println("test...................."); return session.getAttribute("permit"); } public LoginManagerService getLoginManagerService() { return loginManagerService; } public void setLoginManagerService(LoginManagerService loginManagerService) { this.loginManagerService = loginManagerService; } public PermitManagerService getPermitManagerService() { return permitManagerService; } public void setPermitManagerService(PermitManagerService permitManagerService) { this.permitManagerService = permitManagerService; } }
注意:test()方法上,我们使用了一个@ResponseBody的注解,Spring3.0 MVC @ResponseBody的作用是把返回值直接写到HTTP response body里。 test()这个方法就是我们这里关注的地方,它就是返回json数据到客户端去的。还要注意,这个test()方法返回的是Object(这里可以是任意类型),而不ModelAndView。
评论
还能用json传值吗?
采用楼主的方式可以很方便的将java对象转换为json后返回json数据到客户端,但是如果我客户端是一个extjs代码,如下方法实现:
Ext.onReady(function(){ Ext.QuickTips.init(); var login = new Ext.FormPanel({ labelWidth:80, url:'', frame:true, title:'用户查询', defaultType:'textfield', width:300, height:150, monitorValid:true, items:[{ fieldLabel:'ID', name:'id', allowBlank:false },{ fieldLabel:'结果', name:'userName', }], buttons:[{ text:'获取', formBind: true, handler:function(){ login.getForm().submit({ waitTitle:"请稍后", waitMsg:'正在查询', dataType:"json", method:'post', url:'getUser', success:function(form,action){ alert("user is "); }, failure:function(form, action){ alert(action.result.userName); } }); } }] }); login.render('login'); });
点击button按钮后,返回指挥到failure而无法到达success,我认为有可能是返回的json串缺少seccess:true属性的原因,请问楼主这种情况如何解决?
这个是怎么加的?楼主可以把工程发给我么?谢谢了。lg0104@sina.com
发表评论
-
spring之spring与Quartz整合(Quartz的cronTrigger使用)
2011-08-28 18:40 1461spring之spring与Quartz整 ... -
spring之spring与Quartz整合(二)
2011-08-24 18:23 2705spring之spring与Quartz整合( ... -
spring之spring与Quartz整合(一)
2011-08-24 14:56 1421spring之spring与Quartz整合(一) - ... -
spring MVC之使用@SessionAttributes时报异常
2011-08-16 21:43 13943spring MVC之使用@SessionAttributes ... -
spring MVC之用注解处理静态资源
2011-08-08 19:33 3653spring MVC之用注解处理静态资源 --------- ... -
spring MVC之处理重定向的传参
2011-08-01 16:59 22108spring MVC之处理重定向的传参 ---------- ... -
spring MVC之注解开发控制器(三)
2011-07-31 17:11 3919spring MVC之注解开发控制器(三) -------- ... -
spring MVC之Spring MVC3.0的RESTFul方式的访问
2011-07-31 13:14 3909spring MVC之Spring MVC3.0的RESTFu ... -
spring MVC之用注解开发控制器(二)
2011-07-25 11:29 2286spring MVC之用注解开发控制器(二) ------- ... -
spring MVC之用注解开发控制器(一)
2011-07-25 10:45 1875spring MVC之用注解开发控制器(一) ------- ... -
spring MVC之将多个动作分组到一个控制器(二)
2011-07-25 09:25 2283spring MVC之将多个动作分组到一个控制器(二) -- ... -
spring MVC之将多个动作分组到一个控制器(一)
2011-07-24 20:32 4914spring MVC之将多个动作分组到一个控制器(一) -- ... -
spring MVC之用表单控制器处理表单(五)
2011-07-24 19:34 1472spring MVC之用表单控制器处理表单(五) -- ... -
spring MVC之用表单控制器处理表单(四)
2011-07-24 18:58 1374spring MVC之用表单控制器处理表单(四) ----- ... -
spring MVC之用表单控制器处理表单(三)
2011-07-24 18:37 3628spring MVC之用表单控制器处理表单(三) ----- ... -
spring MVC之用表单控制器处理表单(二)
2011-07-24 17:21 1627spring MVC之用表单控制器处理表单(二) ----- ... -
spring MVC之用表单控制器处理表单(一)
2011-07-24 16:47 4822spring MVC之用表单控制器处理表单(一) ----- ... -
spring MVC之创建带有参数化视图的控制器
2011-07-24 13:35 2368spring MVC之创建带有参数化视图的控制器 ----- ... -
spring MVC之构造ModelAndView对象
2011-07-24 12:36 59368spring MVC之构造ModelAndView对象 -- ... -
spring MVC之将异常映射到视图
2011-07-23 20:37 2274spring MVC之将异常映射到视图 ---------- ...
相关推荐
Spring MVC返回JSON数据 用到的jar包,主要是jackson-all-1.9.0.jar,jackson-all-1.9.9.jar,jackson-all-1.9.11.jar三个包
NULL 博文链接:https://coocaobo.iteye.com/blog/2410629
本篇文章主要介绍了Spring MVC3返回JSON数据中文乱码问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7...
工程文件 博文链接:https://starscream.iteye.com/blog/1067606
最近在整spring mvc 返回json的配置,网上搜集整理了一下,觉得蛮有用的就共享出来,三个必备json包并附spring mvc 返回json的配置,此包有两个版本json包,一个2.6一个2.2
总有4个包 jackson-core-asl-1.9.13.jar jackson-core-lgpl-1.9.13 jackson-mapper-asl-1.9.13 jackson-mapper-lgpl-1.9.13
1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 ...12.Spring MVC 实现 JSON 数据返回案例 13.Spring MVC 文件的上传与下载案例 14.Spring MVC 拦截器案例 15.Spring MVC 异常处理案例
这是结合博客的源码,链接是:http://blog.csdn.net/u012660464/article/details/53463708 。名为:使用Spring MVC生成Json数据,我们后台开发生成了Json数据后可以供前端进行异步调用。
spring mvc 常用开发框架 jar包 提高开发效率 降低开发难度
在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。 使用技术及环境: Spring 3.2.2.RELEASE Jackson 1.9.10 JDK 1.6 Eclipse 3.6 Maven 3 PS:在spring 3 中,要输出json...
spring mvc拦截器,过滤json数据中的null值,将null变成空字符串,内含截图,及jar包
spring mvc 返回json 接口 完整demo
spring mvc生成xml或json
本例子用到Spring MVC , Jdbc, JSon, Gson 等等技术,Spring Servlet 配置,Spring中ClassPathXmlApplicationContext类的简单使用,Jdbc的配置与数据库的读取,List与json的转换,java对象使⽤Gson转json字符串null...
本资源是SpringMVC返回JSON数据的相关Jar包,结合我的博客教程可以完成与EasyUI DataGrid之间的数据交互。
该项目在以前的基础上整合了json的使用
NULL 博文链接:https://gaojiewyh.iteye.com/blog/1754619
Spring mvc 返回数据格式采用统一的对象(JSONReturn)进行封装 09. 通过自定义处理器 ExceptionIntercept 实现 Spring mvc的全局异常捕获 10. 系统中包含了企业中采用的开发工具类的集合 11. AbstractDao 父类...
现在很多应用都不是直接连接数据库,而是通过访问http的形式获取Json格式的数据,然后进行处理。本文从搭建返回Json格式数据的服务器出发,到最后如何在安卓应用读取网络上Json数据一一详细介绍。