Spring MVC之返回JSON数据

spring MVC之返回JSON数据(Spring3.0 MVC)

----------

 

我们在本示例中,使用Spring3.0 MVC, Spring 3.0 MVC已经支持JSON了。

这里我们使用基于注解的方式,也是springMVC 3.0所支持的RESTFul风格的。

 

 

 

1.首先加入两个jar依赖,这里以maven构建为例:

Xml代码 复制代码  收藏代码
  1. <dependency>  
  2.     <groupId>org.codehaus.jackson</groupId>  
  3.     <artifactId>jackson-core-asl</artifactId>  
  4.     <version>1.8.4</version>  
  5. </dependency>  
  6. <dependency>  
  7.     <groupId>org.codehaus.jackson</groupId>  
  8.     <artifactId>jackson-mapper-asl</artifactId>  
  9.     <version>1.8.4</version>  
  10. </dependency>  
<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的注解,如例:

Xml代码 复制代码  收藏代码
  1. <context:component-scan base-package="com.hundsun.twioo.business.action" />  
  2. <bean class="org.springframework.web.servlet.mvc.annotation.   
  3.     DefaultAnnotationHandlerMapping" />  
  4. <bean class="org.springframework.web.servlet.mvc.annotation.   
  5.     AnnotationMethodHandlerAdapter" >  
  6.     <property name="messageConverters">  
  7.         <util:list id="beanList">  
  8.             <ref bean="mappingJacksonHttpMessageConverter"/>  
  9.         </util:list>  
  10.     </property>  
  11. </bean>  
  12. <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.   
  13.     http.converter.json.MappingJacksonHttpMessageConverter">  
  14.     <property name="supportedMediaTypes">  
  15.         <list>  
  16.             <value>text/html;charset=UTF-8</value>  
  17.         </list>  
  18.     </property>  
  19. </bean>  
  20. <context:annotation-config/>  
<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上的注解使用

如例:

Java代码 复制代码  收藏代码
  1. @Controller  
  2. @RequestMapping("/logins")   
  3. public class LoginController {   
  4.   
  5.     @Autowired  
  6.     private LoginManagerService loginManagerService;   
  7.     @Autowired  
  8.     private PermitManagerService permitManagerService;   
  9.     private Logger log = Logger.getLogger(LoginController.class);   
  10.        
  11.        
  12.     /**  
  13.      * 用户登录系统  
  14.      * @return  
  15.      */  
  16.     @RequestMapping(value="/login")   
  17.     public ModelAndView login(HttpServletRequest request,HttpSession session){   
  18.            
  19.         User user = null;   
  20.         List<Module> moduleList = null;   
  21.         try {   
  22.             //TwiooID   
  23.             Integer twiooId = ServletRequestUtils.getIntParameter(request, "twiooId");    
  24.             //群ID   
  25.             Integer groupId = ServletRequestUtils.getIntParameter(request, "groupId");    
  26.             user = loginManagerService.login(twiooId, 3);   
  27.             if(null != user){   
  28.                 moduleList = permitManagerService.findPermit(user.getId());   
  29.             }   
  30.             session.setAttribute("user", user);   
  31.             session.setAttribute("permit", moduleList);   
  32.             session.setAttribute("twiooId", twiooId);   
  33.             session.setAttribute("groupId", groupId);   
  34.         } catch (Exception e) {   
  35.             e.printStackTrace();   
  36.             log.error("LoginController.login() execute error!!!");   
  37.         }   
  38.         System.out.println("login...................");   
  39.         return new ModelAndView("index");   
  40.     }   
  41.        
  42.        
  43.     /**  
  44.      * 用户退出系统  
  45.      * @return  
  46.      */  
  47.     @RequestMapping(value="/exit")   
  48.     public ModelAndView exit(HttpServletRequest request,HttpSession session){   
  49.            
  50.         session.removeAttribute("user");   
  51.         session.removeAttribute("permit");   
  52.         session.removeAttribute("twiooId");   
  53.         session.removeAttribute("twiooId");   
  54.         System.out.println("exit....................");   
  55.         return new ModelAndView("index");   
  56.     }   
  57.        
  58.        
  59.     /**  
  60.      * 测试返回JSON数据  
  61.      * @param session  
  62.      * @return  
  63.      */  
  64.     @RequestMapping(value="/test")   
  65.     @ResponseBody  
  66.     public Object test(HttpSession session){   
  67.            
  68.         System.out.println("test....................");   
  69.         return session.getAttribute("permit");   
  70.     }   
  71.        
  72.        
  73.   
  74.     public LoginManagerService getLoginManagerService() {   
  75.         return loginManagerService;   
  76.     }   
  77.     public void setLoginManagerService(LoginManagerService loginManagerService) {   
  78.         this.loginManagerService = loginManagerService;   
  79.     }   
  80.     public PermitManagerService getPermitManagerService() {   
  81.         return permitManagerService;   
  82.     }   
  83.     public void setPermitManagerService(PermitManagerService permitManagerService) {   
  84.         this.permitManagerService = permitManagerService;   
  85.     }   
  86. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值