【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回...

作者:ssslinppp      时间: 2015年5月26日 15:32:51

1. 摘要
本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回。
Spring MVC与json参考文章: 【spring学习笔记-mvc-3】返回json数据-方式1  和  【spring学习笔记-mvc-4】返回json数据-方式2。
使用到的技术主要如下:
  1. Ajax:使用JQuery 提供的ajax;==>需要引入jquery.min.js文件;
  2. Spring MVC;
  3. Json:提供两种方式返回json数据;

2. 项目结构
【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第1张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第2张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第3张图片



3. 前端
前台主界面:
文件位置:     浏览器界面:    【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第4张图片
【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第5张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第6张图片

 
     
  1. <%@ page language="java" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
  5. response.setHeader("Pragma", "no-cache");
  6. response.setHeader("Cache-Control", "no-cache");
  7. response.setDateHeader("Expires", 0);
  8. %>
  9. </span><span class="pln">SpringMVC+ajax+json</span><span class="tag">
  10. type="text/javascript">var basePath = "<%=basePath%>";
  11. <%-- <link rel="stylesheet" type="text/css" href="<%=basePath%>js/easyui/demo.css"> --%>
  12. style="padding:5px 0;">
  13. 方式1

  14. href="#" class="easyui-linkbutton" onclick="loadData1()" data-options="iconCls:'icon-add'">ajax异步获取json数据
  • style="margin:10px 0 20px 0;">
  • style="padding:5px 0;">
  • 方式2

  • href="#" class="easyui-linkbutton" onclick="loadData2()" data-options="iconCls:'icon-add'">ajax异步获取json数据

  • ajaxAndJson.js文件==>具体的ajax请求

    【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第7张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第8张图片

     
         
    1. function loadData1() {
    2. var actionUrl = basePath + "test/testMVC1.action";
    3. var params = {
    4. "username" : 'zhangSan',
    5. 'passwd' : '12345678'
    6. };
    7. $.ajax({
    8. url : actionUrl,
    9. data : params,
    10. dataType : "json",
    11. cache : false,
    12. error : function(textStatus, errorThrown) {
    13. // $.messager.alert('错误', "系统请求错误: " + textStatus, 'error');
    14. alert("系统请求错误: " + textStatus);
    15. },
    16. success : function(data, textStatus) {
    17. // $.messager.alert('系统提示', data.username+data.passwd ,'info');
    18. alert(data.username+data.passwd );
    19. }
    20. });
    21. }
    22. function loadData2() {
    23. var actionUrl = basePath + "test/testMVC2.action";
    24. var params = {
    25. "username" : 'lisi',
    26. 'passwd' : '888888'
    27. };
    28. $.ajax({
    29. url : actionUrl,
    30. data : params,
    31. dataType : "json",
    32. cache : false,
    33. error : function(textStatus, errorThrown) {
    34. // $.messager.alert('错误', "系统请求错误: " + textStatus, 'error');
    35. alert("系统请求错误: " + textStatus);
    36. },
    37. success : function(data, textStatus) {
    38. // $.messager.alert('系统提示', data.Info+", "+data.userList[1].username ,'info');
    39. alert(data.Info+", "+data.userList[1].username);
    40. }
    41. });
    42. }



    4. spring mvc配置文件
    web.xml
    【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第9张图片

     
         
    1. id="WebApp_ID" version="2.4"
    2. xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    4. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    5. contextConfigLocation
    6. classpath:applicationContext.xml
    7. org.springframework.web.context.ContextLoaderListener
    8. mvc-dispatcher
    9. org.springframework.web.servlet.DispatcherServlet
    10. 1
    11. mvc-dispatcher
    12. /rest/*

    spring-servlet.xml
    【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第10张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第11张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第12张图片
     
         
    1. xml version="1.0" encoding="UTF-8" ?>
    2. xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:mvc="http://www.springframework.org/schema/mvc"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context-3.0.xsd
    10. http://www.springframework.org/schema/mvc
    11. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    12. base-package="com.ll.web"/>
    13. class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    14. p:viewClass="org.springframework.web.servlet.view.JstlView"
    15. p:prefix="/jsp/"
    16. p:suffix=".jsp" />
    17. class="org.springframework.web.servlet.view.BeanNameViewResolver"
    18. p:order="10" />
    19. id="testMVC"
    20. class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
    21. name="renderedAttributes">
    22. userList
    23. Info

    applicationContext.xml
    【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第13张图片
     
         
    1. xml version="1.0" encoding="UTF-8" ?>
    2. xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context-3.0.xsd
    10. http://www.springframework.org/schema/tx
    11. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    12. http://www.springframework.org/schema/aop
    13. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    14. base-package="com.ll.service"/>
    15. base-package="com.ll.dao"/>



    5. 控制器
    AjaxController.java
    【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第14张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第15张图片
     
         
    1. package com.ll.web;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. import org.springframework.stereotype.Controller;
    5. import org.springframework.ui.ModelMap;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import org.springframework.web.bind.annotation.ResponseBody;
    8. import com.ll.model.Person;
    9. @Controller
    10. @RequestMapping(value = "/test")
    11. public class AjaxController {
    12. /**
    13. * 返回主页
    14. * @return
    15. */
    16. @RequestMapping(value = "/index.action")
    17. public String index() {
    18. return "index";
    19. }
    20. /**
    21. * 方式1:
    22. * 使用@ResponseBody方式返回json数据
    23. * @param username
    24. * @param passwd
    25. * @return
    26. */
    27. @ResponseBody
    28. @RequestMapping(value = "/testMVC1.action")
    29. public Person testAjax(String username,String passwd) {
    30. System.out.println("ajax-使用@ResponseBody方式返回json数据==>" + username + "(" + passwd + ")");
    31. return new Person(username,passwd);
    32. }
    33. /**
    34. * 方式2:
    35. * 使用MappingJacksonJsonView和bean视图解析器返回json数据
    36. * @param mm
    37. * @param username
    38. * @param passwd
    39. * @return
    40. */
    41. @RequestMapping(value = "/testMVC2.action")
    42. public String getFusionChartsData(ModelMap mm,String username,String passwd) {
    43. System.out.println("ajax-使用MappingJacksonJsonView和bean视图解析器返回json数据==>" + username + "(" + passwd + ")");
    44. Person p1 = new Person(username+"_1",passwd+"_*1");
    45. Person p2 = new Person(username+"_2",passwd+"_*2");
    46. List userList = new ArrayList();
    47. userList.add(p1);
    48. userList.add(p2);
    49. mm.addAttribute("userList", userList);
    50. mm.addAttribute("Info","测试spring MVC");
    51. return "testMVC";
    52. }
    53. }



    6. 运行
    浏览器:http://localhost:8080/SpringMVC_Ajax_Json/test/index.action# 
    【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第16张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第17张图片 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回..._第18张图片








    来自为知笔记(Wiz)


    你可能感兴趣的:(【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回...)