您的位置:首页 > 编程语言 > Java开发

【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

2015-05-25 21:12 876 查看

《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:
【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html
【Spring学习笔记-MVC-4】返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html
【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展:http://www.cnblogs.com/ssslinppp/p/4675495.html
文章的内容主要如下:方式1:讲解如果返回单个对象的json;==>使用@ResponseBody来实现;注解方式

方式2:讲解如果返回多个对象的json;==>使用MappingJacksonJsonView来实现;xml配置方式
方式1-扩展:讲解如果返回多个对象的json;==>使用@ResponseBody来实现;注解方式
个人认为,使用@ResponseBody方式来实现json数据的返回比较方便,推荐使用。


摘要

使用SpringMVC,实现json数据的返回。主要步骤:额外添加2个jar包;
使用@ResponseBody声明返回值;

配置<mvc:annotation-driven/>;==>需要引入:xmlns:mvc="http://www.springframework.org/schema/mvc";

@ResponseBody:

作用:该注解用于将Controller方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后(如:json格式),写入到Response对象的body数据区。使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

<mvc:annotation-driven/>:

<mvc:annotation-driven/>会自动注册DefaultAnnotationHandlerMapping

AnnotationMethodHandlerAdapter

两个bean,这两个bean是springMVC为@Controllers分发请求所必须的。并提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。

需要的jar包


上面两个都是必须的。



项目结构





程序代码

Shop.java
packagecom.ll.model;


publicclassShop{

Stringname;

StringstaffName[];


publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicString[]getStaffName(){

returnstaffName;

}

publicvoidsetStaffName(String[]staffName){

this.staffName=staffName;

}

}

[/code]JSONController.java
packagecom.ll.controller;


importorg.springframework.stereotype.Controller;

importorg.springframework.web.bind.annotation.PathVariable;

importorg.springframework.web.bind.annotation.RequestMapping;

importorg.springframework.web.bind.annotation.RequestMethod;

importorg.springframework.web.bind.annotation.ResponseBody;

importcom.ll.model.Shop;


@Controller

@RequestMapping("/kfc/brands")

publicclassJSONController{


@RequestMapping(value="{name}",method=RequestMethod.GET)

public@ResponseBodyShopgetShopInJSON(@PathVariableStringname){

System.out.println("-----请求json数据--------");

Shopshop=newShop();

shop.setName(name);

shop.setStaffName(newString[]{"mkyong1","mkyong2"});


returnshop;


}


}

[/code]

添加:
@ResponseBody作为返回值。

web.xml
<web-appid="WebApp_ID"version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

'target='_blank'>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">[/code]

<display-name>SpringWebMVCApplication</display-name>


<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>


<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>


<servlet>

<servlet-name>mvc-dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>


<servlet-mapping>

<servlet-name>mvc-dispatcher</servlet-name>

<url-pattern>/rest/*</url-pattern>

</servlet-mapping>


</web-app>

[/code]

mvc-dispatcher-servlet.xml
<beansxmlns="http://www.springframework.org/schema/beans"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

'target='_blank'>http://www.springframework.org/schema/beans/spring-beans-3.0.xsd[/code]
http://www.springframework.org/schema/context

'target='_blank'>http://www.springframework.org/schema/context/spring-context-3.0.xsd[/code]
'target='_blank'>http://www.springframework.org/schema/mvc[/code]
'target='_blank'>http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">[/code]

<context:component-scanbase-package="com.ll.controller"/>


<mvc:annotation-driven/>


</beans>

[/code]

开启:<mvc:annotation-driven/>

applicationContext.xml
<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="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"

xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

'target='_blank'>http://www.springframework.org/schema/beans/spring-beans-3.0.xsd[/code]
http://www.springframework.org/schema/context

'target='_blank'>http://www.springframework.org/schema/context/spring-context-3.0.xsd[/code]
http://www.springframework.org/schema/tx

'target='_blank'>http://www.springframework.org/schema/tx/spring-tx-3.0.xsd[/code]
'target='_blank'>http://www.springframework.org/schema/aop[/code]
'target='_blank'>http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">[/code]

<!--扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入-->

<context:component-scanbase-package="com.ll.model"/>


</beans>

[/code]

运行



参考网站[/b]
http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/http://my.oschina.net/abian/blog/128028

来自为知笔记(Wiz)

附件列表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: