Springmvc統合json

6275 ワード

依存パッケージ:
<!--springmvc   Json-->
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.12</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.12</version>
    </dependency>

springmvc.xml
<?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:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
     
     <!--  
         spring json  @ResponseBody
           : springMVC-servlet.xml   <mvc:annotation-driven /> ,
            3.1        AnnotationMethodHandlerAdapter,
         3.1      RequestMappingHandlerAdapter         jar   !
         
         <mvc:annotation-driven />        ,                ,                    。
         <mvc:annotation-driven />      DefaultAnnotationHandlerMapping AnnotationMethodHandlerAdapter   bean, spring MVC @Controllers        。
            :      ,@NumberFormatannotation  ,@DateTimeFormat  ,@Valid  ,  XML   (JAXB),  JSON   (Jackson)
     -->
     <!---->  
     <mvc:annotation-driven />
     
    <!-- springmvc     @Controller @Service  .....-->
    <context:component-scan base-package="com.sniper.springmvc.**.web" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    
    <!-- jsp   -->
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
     
</beans>

action
package com.sniper.springmvc.web.action;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONObject;
import com.sniper.springmvc.model.User;

@Controller
@RequestMapping
public class IndexAction {
    
    @RequestMapping("/index.do")
    public String index() {
        return "index";
    }
    
    @RequestMapping("/getUser.do")
    public @ResponseBody User getUser() {
        User user = new User();
        user.setId(1L);
        user.setName("  ");
        user.setPasswd("111111");
        
        return user;
    }
    
    @RequestMapping("/getUserNormal.do")
    public void getUserNormal(HttpServletResponse resp) throws IOException {
        User user = new User();
        user.setId(1L);
        user.setName("  ");
        user.setPasswd("111111");
        
        Object json = JSONObject.toJSON(user);
        //  json
        resp.setContentType("application/json;charset=UTF-8");
        //  xml
        resp.setContentType("application/json;charset=UTF-8");
        //  text
        resp.setContentType("application/json;charset=UTF-8");
        resp.getWriter().write(json.toString());
    }
    
}

index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<body>
<h2>Hello World!</h2>

<div id="content"></div>
<div id="content2"></div>

<script src="${pageContext.request.contextPath}/resources/js/jquery/jquery-2.1.1.js"></script>
<script type="text/javascript">
$.ajax({
    type:"POST",
    cache: false,
    url:'${pageContext.request.contextPath}/getUser.do',
    data:{},
    beforeSend: function(XMLHttpRequest){
        alert("      ,            ");
    },
    success:function(data){
        $("#content").html(data.id + '  ' + data.name + '  ' + data.passwd);
    },
    complete: function(XMLHttpRequest, textStatus){
        alert("     ,          ");
    },
    error:function(XMLHttpRequest){
        alert("        "+XMLHttpRequest.status);
    }
});

$.ajax({
    type:"POST",
    cache: false,
    url:'${pageContext.request.contextPath}/getUserNormal.do',
    data:{},
    beforeSend: function(XMLHttpRequest){
        alert("      ,            ");
    },
    success:function(data){
        $("#content2").html(data.id + '  ' + data.name + '  ' + data.passwd);
    },
    complete: function(XMLHttpRequest, textStatus){
        alert("     ,          ");
    },
    error:function(XMLHttpRequest){
        alert("        "+XMLHttpRequest.status);
    }
});
</script>

</body>
</html>