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>
到这里如果配置没有出错的话可以看到这样。算是基本完成了。。可以请求得到数据了。
哦。这里说一下。我也是初学者。仅在此发个博客做个笔记。如果有什么理解错误的地方,欢迎指出。一起学习哈