spring4mvc返回json(bean,list,map)


  因為spring3和spring4的mvc在前端返回json所需要的jar包不一樣,所以索性寫一篇關於spring4mvc在前端返回json的博文。

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

 

convertJsonAction:springmvc的action類

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

然后是引入的library:分別是spring-core,spring-mvc,spring-web,spring4mvc-jackson

tips:spring4的mvc引入的jackson跟spring3的mvc引入的jar包不一樣!!!不一樣!!!!

spring-core:

spring-mvc:

spring-web:

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;
        
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM