zoukankan      html  css  js  c++  java
  • SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】

          注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linuszhu@163.com,敬请朋友们斧正,谢谢。

          这一部分主要解说SpringMVC怎样处理Ajax请求,是首先要解说一下jackson类库,能够帮助我们在java对象和jsonxml数据之间的互相转换。他能够将控制器返回的对象直接转换成json数据,供client使用,client也能够传送json数据到server进行转换,非常是方便。

          详细环境搭建过程例如以下:

    1. 下载两个jackson的jar包:

    jackson-core-asl-1.7.2jar、jackson-mapper-asl-1.7.2jar

    2.  在SpringMVC配置文件里加入例如以下部分:

    <mvc:annotation-driven />  <!-- 支持spring3.0新的mvc注解 -->

    <!-- 启动Spring MVC的注解功能,完毕请求和注解POJO的映射 -->

      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  

            <property name="cacheSeconds" value="0" />  

            <property name="messageConverters">  

                <list>  

                    <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>  

                </list>  

            </property>

        </bean>  

    3. client代码ajaxTest.jsp例如以下:

    <%@page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

    <head>

    <title>Ajax</title>

    <META http-equiv="content-type" CONTENT="text/html;charset=UTF-8">

    <script>

    function createAjaxObj() {

    var req;

    if (window.XMLHttpRequest) {

    req = new XMLHttpRequest();

    else {

    req = new ActiveXObject("Msxml2.XMLHTTP"); //ie

    }

    return req;

    }

    function sendAjaxReq() {

    var req = createAjaxObj();

    req.open("get""myajax.do?method=test1&uname=张三");

    req.setRequestHeader("accept""application/json");

    req.onreadystatechange = function() {

    eval("var result=" + req.responseText);

    document.getElementById("div1").innerHTML = result[0].uname + "==="

    + result[1].uname + "===" + result[2].uname;

    };

    req.send(null);

    }

    </script>

    </head>

    <body>

    <a href="javascript:void(0);" onclick="sendAjaxReq();">Ajax測试</a>

    <div id="div1"></div>

    </body>

    </html>

    4. server端代码例如以下:

    package com.spring.ajax;

    import java.util.ArrayList;

    import java.util.List;

    import org.springframework.stereotype.Controller;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.RequestMethod;

    import org.springframework.web.bind.annotation.ResponseBody;

    import com.spring.bean.User;

    @Controller

    @RequestMapping("myajax.do")

    public class MyAjaxController {

    @RequestMapping(params = "method=test1")

    public @ResponseBody

    List<User> test1(String uname) throws Exception {

    String uname2 = new String(uname.getBytes("iso8859-1"), "gbk");

    System.out.println(uname2);

    System.out.println("MyAjaxController.test1()");

    List<User> list = new ArrayList<User>();

    User u1 = new User();

    u1.setId(111);

    u1.setUname("測试1");

    User u2 = new User();

    u2.setId(222);

    u2.setUname("測试2");

    User u3 = new User();

    u3.setId(333);

    u3.setUname("測试3");

    list.add(u1);

    list.add(u2);

    list.add(u3);

    return list;

    }

    }

    5. 项目执行測试。

    输入地址:http://localhost:8081/SpringMVC02/ajaxTest.jsp ,界面例如以下:

    点击链接进行測试,会调用后台程序,将结果返回到页面上,例如以下:

  • 相关阅读:
    javaweb 最简单的分页技术
    Jquery选择器小结
    JSON 初探
    C# GridView 的使用
    C# 操作数据库
    Java中String为什么是不可变
    Eclipse使用技巧小结
    Java File类方法使用详解
    JSP基础语法总结
    JSP取得绝对路径
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4040711.html
Copyright © 2011-2022 走看看