springmvc --json

首先,先要导入包:

配置文件:

<?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 或者啥的就可以解决了

猜你喜欢

转载自blog.csdn.net/qq_39512671/article/details/80958555
今日推荐