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

SpringMVC返回json数据完整配置如下。

2017-12-05 20:02 501 查看
1.SpringMVC 配置文件如下:

<?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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org.schema/aop"
xmlns:tx="http://www.springframework.org.schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schemma/aop/spring-aop.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
<!-- 注册mvc注解驱动  让容器创建HttpMessageConverter 对象 ..-->
<mvc:annotation-driven />
<!-- 注册组件扫描器 -->
<context:component-scan base-package="com.evecom.json"></context:component-scan>
<!-- 视图页面配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>

</beans>


2.利用maven管理json数据相关jar包,这里请注意。不要自己去百度上找jar包。因为有些个人博客下载需要积分。而且找得过程与配置过程也比较心累(经常出错)。有这么好的东西干嘛不用。如下。 在pom.xml文件中添加如下依赖关系..(我是这样叫的).

<!-- json -->

<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>

<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- json -->

<!-- json obj -->

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.1</version>
</dependency>

<!-- json obj -->


3.java代码咯。(Controller)

这里我是用springMVC中的注解形式…

@Controller
@RequestMapping("userinfo")
public class UserInfoList {

@RequestMapping("/list")
public void userInfoList(HttpServletResponse response,UserInfo userInfo)throws IOException {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", userInfo.getName());
map.put("age", userInfo.getAge());
map.put("sex", userInfo.getSex());

JSONObject myJson = JSONObject.fromObject(map);

System.out.println("有走到这个方法");
String jsonString = myJson.toString();

response.setCharacterEncoding("utf-8");

PrintWriter out = response.getWriter();
out.print(jsonString);
out.close();

}
//请求参数作为路径参数。。。
@RequestMapping("/{rname}/{rage}/login.do")
public ModelAndView loginAction(@PathVariable("rname") String rname,
@PathVariable int rage) {

ModelAndView modelAndView = new ModelAndView("user");
modelAndView.addObject("name", rname);
modelAndView.addObject("age", rage);
return modelAndView;

}
//,produces="text/html;charset=utf-8" 设置编码格式。。。
@RequestMapping(value="/myajax.do")
@ResponseBody
public Object doAjax() {
//      return 123.456;
// 这样更像 json 数据.....
//      // list <UserInfo> list =
Map<String, Object> responseM = new HashMap<String, Object>();
Map<String, UserInfo> map = new HashMap<String, UserInfo>();
map.put("user1",new UserInfo("张三", "男", 23));
map.put("user2", new UserInfo("李四", "男", 24));
map.put("user3", new UserInfo("韩梅梅", "女", 25));
responseM.put("data", map);
responseM.put("state", "success");
return responseM;
}

}


4.前端页面使用ajax 做网络请求。所以。这里我们下载jQuery代码并将它添加到工程中去。



index.jsp页面如下

<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
<script>
$(function(){
$("#ajax_r").click(function(){
$.ajax({
url:"userinfo/list.do",
data:{
name:"北京",
age:23,
sex:"男"
},
success:function(data){
// 解析字符串.
var myJson = eval("(" + data + ")");
console.log(myJson.name);
console.log(myJson.sex);

},
error:function(){
alert("请求出错");
}
});
});

$("#ajax_obj").click(function(){
$.ajax({
url:"userinfo/myajax.do",
data:{

},
success:function(data){
// 解析字符串.
//var myJson = eval("(" + data + ")");
//console.log(myJson);
//console.log(data.name + " " + data.age + " " + data.sex);
console.log(data);
},
error:function(){
alert("请求出错!");
}
});
});

});
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ajax请求测试</title>
</head>
<body>

<button id="ajax_r">提交ajax请求</button>

<a href="test/other.do"> 请求转发</a>

</body>
</html>


到这里如果配置没有出错的话可以看到这样。算是基本完成了。。可以请求得到数据了。



哦。这里说一下。我也是初学者。仅在此发个博客做个笔记。如果有什么理解错误的地方,欢迎指出。一起学习哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc json