首先,先要导入包:
配置文件:
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="stringConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringConverter" />
<ref bean="jsonConverter" />
</list>
</property>
</bean>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter>
<filter-name>myfilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>mymvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mymvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
controller:
@Controller
public class JsonController {
@RequestMapping(value="/javajs.do",method=RequestMethod.POST,produces = "application/json;charset=UTF-8")
public @ResponseBody List<User> userJson(){
List<User> list=new ArrayList<User>();
list.add(new User(1,"czy","nan"));
list.add(new User(2,"jjj","nan"));
return list;
}
}
jsp
<body>
<input type="button" id="btn" name="btn" value="click">
<div id="si"></div>
<script type="text/javascript" src="js/jquery-1.11.3.min.js" ></script>
<script type="text/javascript">
$(function(){
$("#btn").click(function(){
$.post("javajs.do",function(date){
var htm="";
for(var i=0;i<date.length;i++){
htm+="id:+"+date[i].id+"name:"+date[i].name+"sex:"+date[i].sex+"<br>";
}
$("#si").html(htm);
});
});
});
</script>
这里,有几个需要注意的地方:
在前端获取json数据的时候,有可能会出现406错误,这个时候要注意需要导入的包是否导入完整,servlet配置文件是否配置正确;
还有就是分发器的路径:
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这样会影响到静态资源文件的获取,一般设置为*.do 或者啥的就可以解决了