spring mvc 是个灵活的开源框架 深受大家的喜爱,正因为灵活,所以一个简单的返回JSON 数据的功能,有太多五花八门的配置,看得让人目不暇接。
我决定给一个比较简单 而又实用的配置:
1.依赖的JAR包 如图 SPRING MVC 我的是3.1的
2.<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<!-- 启动注解驱动的 Spring MVC 功能, 注册请求 url 和注解 POJO 类方法 的映射 -->
<mvc:annotation-driven />
<!-- 启动包扫描功能,以便注册带有 @Controller 、 @Service 、 @repository 、 @Component 等注解的类成为
spring 的 bean ,不在此spring容器中扫描注册 @Controller 、 @Service,因为此时的service还没有事务特性-->
<context:component-scan base-package="com" >
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
<!--
Most controllers will use the ControllerClassNameHandlerMapping above, but
for the index controller we are using ParameterizableViewController, so we must
define an explicit mapping for it.
-->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.htm">indexController</prop>
</props>
</property>
</bean>
<!-- JSON视图 -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="1" />
</bean>
<bean id="jsonView" class="sys.RenderJsonView"></bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
<!--
The index controller.
-->
<bean name="indexController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="index" />
</beans>
3. RenderJsonView
package sys;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.PropertyFilter;
import org.springframework.web.servlet.view.json.MappingJacksonJsonView;
/**
* 自定义的JsonView,返回json数据
*
* @author wubei
*
*/
@SuppressWarnings("unchecked")
public class RenderJsonView extends MappingJacksonJsonView {
protected void renderMergedOutputModel(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Map<?, ?> result = (Map<?, ?>) super.filterModel(model);
Object obj = null;
if (result.values().iterator().hasNext()) {
obj = result.values().iterator().next();
}
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object arg0, String arg1, Object arg2) {
if (arg2 instanceof Set) {
return true;
}
return false;
}
});
if (obj instanceof List) {
response.getWriter().println(JSONArray.fromObject(obj, config));
} else {
response.getWriter().println(JSONObject.fromObject(obj, config));
}
}
}
4.test
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com;
import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
*
* @author Administrator
*/
@Controller
public class Test {
@RequestMapping(value="/test.htm")
public ModelAndView test(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","fengxiang");
map.put("age",23);
return new ModelAndView("jsonView").addObject(map);
}
}
ok 了
- 大小: 15.2 KB
分享到:
相关推荐
Spring MVC还提供了`@JsonView`注解来控制JSON响应中的数据粒度,以及`@JsonProperty`和`@JsonIgnore`来控制哪些字段应包含在JSON中。 **jQuery和JavaScript** jQuery是一个流行的JavaScript库,简化了DOM操作、...
2. **配置 Spring MVC**:在 Spring MVC 的配置文件中,我们需要添加 `Jackson` 的转换器,使得 Spring MVC 能够解析和生成 JSON 数据。例如,在使用 XML 配置时,可以添加以下配置: ```xml <bean class="org....
本篇文章将通过解析“spring-mvc-jsonview”源代码,深入探讨Spring MVC如何支持AJAX请求,并提供一个实际的使用教程。 一、JSON视图解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...
除此之外,教程可能还会涵盖Spring MVC的RESTful API设计,如何创建JSON响应,以及使用Spring Boot快速构建Spring MVC应用。Spring Boot简化了配置,提供了预配置的依赖,使得开发者能更快地启动项目。 错误处理和...
这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式基于Model-View-Controller(MVC),它将应用程序的业务逻辑、数据和...
总的来说,"Mastering Spring MVC 4(2015.09)源码"提供了深入学习Spring MVC的机会,你可以通过阅读和分析源码来了解如何配置DispatcherServlet、怎样编写控制器、如何进行数据绑定与验证,以及如何利用拦截器等特性...
本篇文章将深入探讨Spring MVC 3.2中配置REST服务的关键点。 首先,`dispatcher-servlet.xml`是Spring MVC的核心配置文件,它定义了Spring MVC如何处理HTTP请求。在配置REST服务时,我们需要在这个文件中声明一些...
4. **配置Spring MVC**:创建Spring MVC的配置文件,如`servlet-context.xml`,配置DispatcherServlet、视图解析器(如InternalResourceViewResolver)、拦截器等。 5. **配置MyBatis**:编写MyBatis的全局配置文件...
2. **Model-View-Controller(MVC)架构**: Spring MVC遵循MVC设计模式,将应用程序逻辑分解为模型(Model)、视图(View)和控制器(Controller)三个部分。模型处理业务逻辑,控制器处理用户交互,视图负责展示...
配置Spring MVC通常涉及web.xml文件中的DispatcherServlet配置,以及Spring配置文件中定义的Controller、ViewResolver和其他组件。Spring Boot简化了这一过程,通过自动配置和@SpringBootApplication注解可以快速...
Spring MVC是Spring框架的一部分,它提供了MVC(Model-View-Controller)设计模式的实现,简化了Web应用的开发。该框架提供了处理HTTP请求、模型绑定、数据验证、视图渲染等功能,同时支持多种视图技术如JSP、...
首先,Spring MVC的核心概念包括DispatcherServlet、Controller、Model-View-Controller模式(MVC)以及IoC(控制反转)和DI(依赖注入)。DispatcherServlet是Spring MVC的前端控制器,负责接收HTTP请求并分发到...
1. **Spring MVC基本概念**:首先,了解Spring MVC的基本架构,包括DispatcherServlet、Controller、Model、View和ViewResolver等组件的角色和交互方式。 2. **配置Spring MVC**:学习如何通过XML或Java配置来设置...
【Spring MVC 搭建 JSON 数据服务器】 Spring MVC 是一个基于 Spring 框架的 Model-View-Controller(MVC)实现,它使得构建 web 应用程序变得更加简单。在这个过程中,我们将学习如何使用 Spring MVC 来创建一个...
3. **配置Spring**:编写Spring的配置文件,定义bean,包括数据源、SessionFactory(用于Hibernate)、事务管理器以及Spring MVC的相关配置。这里需要配置DAO和Service层的bean,使它们能够利用Hibernate操作数据库...
标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...
在这个"intellij spring mvc 的各种配置.rar"压缩包中,你将找到关于如何在IntelliJ IDEA中配置和使用Spring MVC以及与MySQL数据库交互的相关资料。 首先,让我们深入了解Spring MVC。Spring MVC是一个基于模型-...
- **轻量级且易于理解**:Spring MVC 通过其简单的配置和较少的学习曲线,使得开发者可以快速上手。 - **高性能**:相比于其他框架如 Struts2,Spring MVC 在设计上更加注重性能优化。 - **高度灵活**:Spring MVC ...
Spring JSON View是在Spring MVC中处理JSON数据的一种方式。它允许开发者将Java对象直接转换为JSON格式,以便于前端通过Ajax请求获取数据。通过配置Spring的ViewResolver,可以指定一个处理JSON的视图,如Jackson或...