SPRING MVC返回JSON数据

用到SPRING的 MappingJacksonJsonView 视图,需要jackson.jar包支持,下载地址http://wiki.fasterxml.com/JacksonDownload

一个测试的例子,配置控制器TestJsonController和视图解析器TestViewResolver:

<bean id="viewViewResolver" class="com.ll19.mvc.test.view.resolver.TestViewResolver"> 		
<property name="order" value="1"/> 	
</bean> 	
<bean id="testJsonController" class="com.ll19.mvc.test.control.TestJsonController"> 		
<property name="prefix" value="/json"/> 	
</bean>

具体代码如下:

package com.ll19.mvc.test.control;   
import javax.servlet.http.HttpServletRequest;
 
import javax.servlet.http.HttpServletResponse;   
import org.springframework.web.servlet.ModelAndView;
 
import org.springframework.web.servlet.mvc.Controller;  
 
import com.ll19.mvc.test.bean.TestBean;   
/**  * 测试控制器  *   * @author <a href="http://www.LL19.com/">LL19.com</a>  */ 
public class TestJsonController implements Controller {       
/**      * 前缀      */     

private String prefix;       
public String getPrefix() {         
return prefix;     
}       
public void setPrefix(String prefix) {         
this.prefix = prefix;    
 }       
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {           
TestBean testBean 
= new TestBean();         
testBean.setDctime(
"time");         
testBean.setDid(
1L);         
testBean.setDname(
"jsonView测试");         
ModelAndView mav 
= new ModelAndView("jsonView");         
mav.addObject(testBean);           
return mav;    
 }   
}

TestBean为一个测试BEAN,返回ModelAndView后视图解析器TestViewResolver直接返回MappingJacksonJsonView视图即可:

public View resolveViewName(String viewName, Locale locale) throws Exception { 		
if (viewName.equals("jsonView")) { 			
return new MappingJacksonJsonView(); 		
} 		
return null; 	
}

MappingJacksonJsonView视图便会根据你添加的BEAN对象,自动转换为JSON格式,在例如使用AJAX获取数据后,即可直接用JS操作返回的JSON数据。

测试结果:{"testBean":{"did":1,"dname":"jsonView测试","dctime":"time"}}

posted @ 2012-02-20 13:03  张良  阅读(358)  评论(0编辑  收藏  举报