spring4mvc返回json(bean,list,map)

  由於spring3和spring4的mvc在前端返回json所須要的jar包不同,因此索性寫一篇關於spring4mvc在前端返回json的博文。前端

首先,新建一個web項目,項目格式如圖所示:java

 

convertJsonAction:springmvc的action類jquery

inde.jsp:有三個按鈕,分別返回bean,list和map對應的jsonweb

而後是引入的library:分別是spring-core,spring-mvc,spring-web,spring4mvc-jacksonspring

tips:spring4的mvc引入的jackson跟spring3的mvc引入的jar包不同!!!不同!!!!json

spring-core:spring-mvc

spring-mvc:mvc

spring-web:app

spring4mvc-jackson:異步

接着是配置web.xml

由於springmvc是servelet,因此在web.xml中配置的就是一個servlet,在web.xml中添加以下代碼

 <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
               <param-name>contextConfigLocation</param-name>
               <!-- 將配置對應的springmvc文件設置在src根目錄下 -->    
               <param-value>classpath:springmvc.xml</param-value>
       </init-param>
        
    </servlet>

    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>

 

而後在src下面新建一個叫springmvc的xml文件,文件內容如圖所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        ">
    
</beans>

 

接着咱們在ConvertJSonAction.java類中添加一個方法:

package com.mz.json;

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

/**
 * controller指明這是一個springmvc的action類
 * requestMapping是總的路徑,全部訪問這個action類中的方法必須經過/convert
 * @author asus
 *
 */
@Controller
@RequestMapping("/convert")
public class ConvertJsonAction {
    //responseBody是指返回的User是一個json對象(也能夠是string或者xml對象)
    @RequestMapping("/bean2json")
    public @ResponseBody User bean2json() {
        User user = new User();
        user.setId(1);
        user.setUsername("Irasel");
        return user;
    }
}

 

 這是action的處理類,接着咱們在springmvc中配置開啓mvc的annotation和掃描標籤:

<mvc:annotation-driven />
    <context:component-scan base-package="com.mz.json"></context:component-scan>

 

index.jsp中添加三個按鈕,每個按鈕分別對應的返回一個bean對象的json,list對象的json和map對象的json:

 <!-- 點擊返回一個bean對象的json -->
    <input type="button" value="bean2json"><br/>
    <!-- 點擊返回一個list對象的json -->
    <input type="button" value="list2json"> <br/>
    <!-- 點擊返回一個map對象的json -->
    <input type="button" value="map2json"><br/>

 

使用jquery的異步傳輸:

    $(':button:first').click(function(){
              var url = 'convert/bean2json.action';
              var arg =null;
              $.post(url,arg,function(returnData){
                  console.log(returnData);
              });
          });

 

效果如圖所示:

接着是list和map的方法(再也不粘貼效果圖了,反正都差很少)

    @RequestMapping("/list2json")
    public @ResponseBody List<User> list2Json() {
        List<User> users = new ArrayList<User>();
        User user1 = new User();
        user1.setId(1);
        user1.setUsername("Irasel");
        User user2 = new User();
        user2.setId(2);
        user2.setUsername("路西法");
        User user3 = new User();
        user3.setId(3);
        user3.setUsername("Micheal");
        users.add(user1);
        users.add(user2);
        users.add(user3);
        return users;
    }
    @RequestMapping("/map2json")
    public @ResponseBody Map<String, Object> map2Json() {
        List<User> users = new ArrayList<User>();
        Map<String, Object> map = new HashMap<String, Object>();
        User user1 = new User();
        user1.setId(1);
        user1.setUsername("Irasel");
        User user2 = new User();
        user2.setId(2);
        user2.setUsername("路西法");
        User user3 = new User();
        user3.setId(3);
        user3.setUsername("Micheal");
        users.add(user1);
        users.add(user2);
        users.add(user3);
        map.put("row", users.size());
        map.put("users", users);
        return map;
        
    }
相關文章
相關標籤/搜索