• 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错误。

  • 相关阅读:
    STM32-M0中断优先级介绍
    source insight之quicker.em宏的使用
    LORA---关于LORA的30个常见问题解答
    【原创】Mac上编译Hadoop1.0.3出现的一些问题
    Mac中下载JDK手动更新出现“只支持10.7.3以上的系统版本”问题解决方案
    【Java基础】Java内部类
    【Java基础】Java类及成员和修饰符的关系
    【Java基础】Java接口的总结
    【Java基础】抽象类和抽象方法的总结
    【Java基础】Java中的多态
  • 原文地址:https://www.cnblogs.com/blog411032/p/5590750.html
Copyright © 2020-2023  润新知