用到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; }
}
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"}}