最近花了很多时间,研究Spring MVC 3.2.2 +easyui,实现了这个,前端页面实现个系统就很简单了。
Spring MVC 返回JSON数据的方法
1). 直接 PrintWriter 输出
2). 使用 JSP 视图
3). 使用Spring内置的支持
本文介绍的是第3种方法,方法如下:
1:首先下载JSON的包
这是spring MVC处理json数据时,所必须的jar依赖。
2:spring mvc的配置文件中加入配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:annotation-config /> <context:component-scan base-package="com.kingmed.jusmartcare.health"/> <!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jsonHttpMessageConverter"/> </list> </property> </bean> <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> <property name="contentType" value="text/html; charset=utf-8"/> </bean> </beans>
说明:
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 的Bean配置中,我们加入了messageConverters属性,在该属性中我们有配置jsonHttpMessageConverter这个 Bean,它就是用来处理json数据转换的。
在jsonHttpMessageConverter的Bean配置中,有一个supportedMediaTypes属性,在这个属性可以添加了 text/html;charset=UTF-8这个值,它是为了处理返回的json数据的编码,默认是ISO-88859-1的,如果出现乱码,可以把 它设置为UTF-8,参考如下:
<bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean>
3:控制器Controller的注解
package com.kingmed.jusmartcare.health.web; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MemberShipController { public static final String LOGIN_SUCCESS = "vipcontent";//Index";// 登陆成功 public static final String LOGIN_FAIL = "../../index";//"LoginFail";// 登陆失败 public static final String LOGOUT = "../../index";// public static final String REGISTER_SUCCESS = "RegisterSuccess";// 注册成功 public static final String REGISTER_FAIL = "RegisterFail";// 注册成功 private static final Logger logger=LoggerFactory.getLogger(MemberShipController.class); @Autowired private HealthconsultService healthconsultService; @RequestMapping("jsp/welcome.do") public String welcom(@RequestParam(value = "ln", required = false) String ln) { String en = ln==null?"":ln+'/'; return en+"welcome"; } @RequestMapping(value="user/list.do",method=RequestMethod.GET) public String list(Model model) throws Exception { return "user/list"; } @RequestMapping(value="jsp/user/queryList.do") @ResponseBody public Map<String, Object> queryList(HttpSession session,@RequestParam(value = "pageNo", required = false) Integer pageNo,@RequestParam(value = "ln", required = false) String ln) throws Exception{ //spring太方便了,可以自动装配两个对象 会自动的装返回的Map转换成JSON对象 Map<String, Object> result = new HashMap<String, Object>(2); String en = ln==null?"":ln+'/'; pageNo = pageNo==null?1:pageNo; Page<Healthconsult> healths=healthconsultService.getPageList("cardno","1001", pageNo,2); int total=healths.getTotalCount(); result.put("total", total); result.put("rows", healths.getResult()); return result; } @RequestMapping(value="jsp/welcome1.do") @ResponseBody public Object test(HttpSession session){ System.out.println("test...................."); MemberInfo logined=(MemberInfo)session.getAttribute("USER_INFO"); if(logined ==null){ logined=new MemberInfo(); logined.setCardNo("999999"); System.out.println("test1...................."); } System.out.println("test2...................."); return logined; } }
说明:使用了一个@ResponseBody的注解,Spring3.0 MVC @ResponseBody的作用是把返回值直接写到HTTP response body里,
返回json数据的可以是一个类(看test),或者list(看queryList)。
相关推荐
采用Maven管理,整理Spring3.2.2 + Spring MVC3.2.2 + Mybatis3.2.3。 本实例已经实现多对多关系,下载后请选择导入maven项目。 另:数据库已经删除表关联关系。
spring mvc3.2.3+ myibatis3.2.2 分 dao service pojo mapper controllor等层,有敢于网上下载多不适用,故作一层次分明功能较全面(列表,登录验证,增加)的功能验证性web程序以为分享,因程序为功能验证性程序,...
spring 3.2.2 + quartz 2.1 需要的包 包括 quartz-2.1.5.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar spring-context-support-3.2.0.RELEASE.jar
标题中的“基于最新的SSH(Struts2.3.12+Spring3.2.2+Hibernate4.2.0)+ jquery EasyUI1.3.2的担保公司OA系统”表明这是一个集成开发的Web应用程序,主要用于担保公司的办公自动化(OA)。SSH是Struts2、Spring和...
标题 "Mybatis 3.2.2 + Spring MVC 3.2" 描述了一个整合了Mybatis和Spring MVC两个框架的项目,版本分别为3.2.2和3.2。这个项目应该是一个简单的Web应用程序,它允许开发者通过Spring MVC处理前端请求,并利用...
spring3.2.2+struts2.3.14整合的一个登录实例。 数据库使用的是ORACLE,如使用其他数据库请自行导入所需JAR包,并修改配置文件datasource.properties。 环境:eclipse+tomcat7.0+JDK1.7+spring3.2.2+struts2.3.14,...
myEclipse2013+spring-mvc+mybatis3.2.2实现增删改查简单完整版,可在myEclipse2013自带的Tomcat 7上运行,weblogic上可能有问题,有ModelMap 和ModelAndView的简单使用比较,ModelMap用起来更方便简洁。也使用到了c...
spring3.2.2+struts2.3.14整合的一个登录实例。 数据库使用的是ORACLE,如使用其他数据库请自行导入所需JAR包,并修改配置文件datasource.properties。 环境:eclipse+tomcat7.0+JDK1.7+spring3.2.2+struts2.3.14,...
旅游智能CRM系统源码 旅游公司管理游客系统 Thinkphp3.2.2+bootstrap内核 Thinkphp3.2.2+bootstrap旅游智能CRM系统源码 基于ThinkPHP框架开发的旅游智能CRM系统,为旅游公司精心打造的管理游客的一款系统,系统包含...
本文将深入探讨"spring3.2.2+mybatis3.1-lib"的整合过程及其相关知识点。 首先,Spring是一个全面的后端开发框架,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP...
这是一个基于Spring 3.2.5、Spring MVC 3.2.5、MyBatis 3.2.2和JUnit 4.4的Java Web项目,搭配MySQL数据库的开发环境配置。这个压缩包包含了构建一个功能完备的后端服务所需的基础组件。下面将详细介绍这些技术及其...
在本文中,我们将深入探讨如何配置Struts2.3.12、Spring3.2.2和Hibernate4.2.0这三个组件。 1. **Struts2.3.12** Struts2是Apache软件基金会的一个开源MVC框架,用于构建基于Java Servlet的应用程序。它提供了强大...
这个"SSH(struts2.3.8+spring3.2.2+hibernate4.2.0)整合demo"是一个示例项目,旨在帮助初学者理解如何将这三个框架协同工作,实现用户注册和用户列表的功能。 Struts2作为MVC(模型-视图-控制器)框架,主要负责...
Struts2、Spring和Hibernate是Java开发中常用的三大开源框架,它们组合在一起被称为SSH(Struts2、Spring、Hibernate)框架。SSH框架的整合能够帮助开发者实现MVC(Model-View-Controller)设计模式,提高应用程序的...
Struts2、Spring和Hibernate(SSH)是Java Web开发中常用的三大开源框架,它们的集成可以构建出高效、可维护的MVC应用。本文档详细介绍了如何配置最新版本的Struts2.3.12、Spring3.2.2和Hibernate4.2.0,以帮助...
在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。 使用技术及环境: Spring 3.2.2.RELEASE Jackson 1.9.10 JDK 1.6 Eclipse 3.6 Maven 3 PS:在spring 3 中,要输出json...
Struts2、Spring和Hibernate是Java Web开发中的三大主流框架,它们共同构建了一个强大的MVC(Model-View-Controller)架构。在这个配置中,Struts2作为表现层框架,Spring作为业务逻辑层和依赖注入框架,Hibernate则...
jbpm3.2.2集成了持久化框架Hibernate,使得流程实例和相关数据可以方便地存储和检索。 【Spring2.5】 Spring是一个全面的Java企业级应用开发框架,2.5版本是其历史上的一个重要里程碑。它强调了依赖注入...
标题 "mybatis-3.2.2 + spring 3.2(内有jar包直接能运行)" 提供了一个集成项目的信息,它结合了MyBatis 3.2.2版本和Spring 3.2.2版本。这个项目是设计为可以直接在Eclipse环境中运行的,表明它已经包含了所有必要的...