zoukankan      html  css  js  c++  java
  • springMVC中ajax的使用

    springMVC中使用ajax有两种方法,第一种是根据servletAPI来使用ajax,第二种是根据springMVC给我们提供的API来使用。

    一.根据servletAPI:

    springMVC配置文件如下:

    <!-- 配置handerAdapter  适配器 -->
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
        
        <!-- spring容器扫描指定包下的所有类,如果类上有注解  那么根据注解产生相应bean对象已经映射信息 -->
        <context:component-scan base-package="cn.sxt.controller"/>
    View Code

    具体controller如下:

    @RequestMapping("/ajax.do")
        public void ajax(HttpServletRequest req,HttpServletResponse resp) throws IOException{
            resp.getWriter().print("ajax data");
        }
    View Code

    非常简单,这种使用ajax的方式只能携带比较简单的字符串,如果要携带复杂对象,就需要自己转换为json格式,比较麻烦。

    二.根据springMVCAPI:

    springMVC配置文件如下:

    <?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:context="http://www.springframework.org/schema/context"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!-- json配置 -->
        <!-- 用于将对象转换为 JSON -->
        <bean id="stringConverter"
            class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/plain;charset=UTF-8</value>
                </list>
            </property>
        </bean>
        <bean id="jsonConverter"
            class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
        <bean
            class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
            <property name="messageConverters">
                <list>
                    <ref bean="stringConverter" />
                    <ref bean="jsonConverter" />
                </list>
            </property>
        </bean>
        <!-- spring容器扫描指定包下的所有类,如果类上有注解 那么根据注解产生相应bean对象已经映射信息 -->
        <context:component-scan base-package="com.mxf.controller" />
    </beans>
    View Code

    配置文件中原来的注解适配器可以去掉,因为ajax的格式转换的配置是在注解适配器中,故不需要原来的单纯的注解适配器,如果再加上原来的适配器,会报错。

    具体controller如下:

    package com.mxf.controller;
    
    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.ResponseBody;
    
    import com.mxf.domain.User;
    
    @Controller
    public class AjaxController {
    
        @RequestMapping("aj.do")
        @ResponseBody
        public List<User> list(){
            List<User> list = new ArrayList<User>();
            list.add(new User(1,"zhangsan",22));
            list.add(new User(2,"李四",24));
            list.add(new User(3,"王五",27));
            list.add(new User(4,"赵四",29));
            return list;
        }
    }
    View Code

    在controller中需要注意的是:方法上必须加@ResponseBody,如果不加该注解标签,则springMVC会报404错误。

  • 相关阅读:
    动态规划:POJ2576-Tug of War(二维费用的背包问题)
    动态规划:HDU3496-Watch The Movie(二维费用的背包问题)
    动态规划:HDU1712-ACboy needs your help(分组背包问题)
    水题:HDU1303-Doubles
    动态规划:HDU2844-Coins(多重背包的二进制优化)
    动态规划:HDU1059-Dividing(多重背包问题的二进制优化)
    动态规划:HDU1224-Free DIY Tour
    动态规划:HDU1864-最大报销额(处理带小数的dp问题)
    红黑树
    二叉树
  • 原文地址:https://www.cnblogs.com/blog411032/p/5590750.html
Copyright © 2011-2022 走看看