Ajax在SpringMVC基本使用

201 阅读2分钟

Ajax在SpringMVC基本使用

数据交互:就是Controller View之间的数据交互

控制器:Controller 如何传递数据给 View

视图:View(jsp,html,vue… )如何传递数据给 控制器Controller

先定标准,写好控制器,做好接口的测试!

1、添加Jar文件

  • com.fasterxml.jackson.core:jackson-databind:2.12.3
  • com.fasterxml.jackson.core:jackson-core:2.12.3
  • com.fasterxml.jackson.core:jackson-annotations:2.12.3

检查springmvc配置文件中加入:<mvc:annotation-driven></mvc:annotation-driven>,如果没有加入mvc-annotation的节点,可能会出现如下错误:

<!--
    检查springmvc配置文件中加入: <mvc:annotation  ….>
    如果没有加入mvc-annotation的节点,可能会出现错误:
    -->
<!--设置配置方案 -->
<mvc:annotation-driven></mvc:annotation-driven>

<mvc:annotation-driven />注解意义:

主要就是为了Spring MVC来用的,提供Controller请求转发,json自动转换等功能.。

<mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。配置一些messageconverter。即解决了@Controller注解的使用前提配置<context:annotation-config/>是对包进行扫描,实现注释驱动Bean定义,同时将bean自动注入容器中使用。即解决了@Controller标识的类的bean的注入和使用。 <mvc:annotation-driven>会自动注册RequestMappingHandlerMappingRequestMappingHandlerAdapter两个Bean,这是Spring MVC@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。 我们处理响应ajax请求时,就使用到了对json的支持。 对actionJUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMappingAnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean

CSSJS失效,需要在applicationContext.xml中做静态资源的处理

<!--静态资源的处理,我们的前端控制器不处理静态资源 ,注意,请求还是有走前端控制器,只不过不处理 -->
<mvc:default-servlet-handler/>

2、使用注解编写控制层

在控制器层使用 **@RestController**返回数据 ,可以设置返回格式 application/json;

@ResponseBody : 如果方法加上了@ResponseBody注解,Spring返回值到响应体。如果这样做的话,Spring将根据请求中的 Content-Type header(私下)使用 HTTP Message converters 来将domain对象转换为响应体。

@RestController
@RequestMapping("ajax")
public class BlogControllerAjax {

    @Autowired
    private BlogService blogService;
    
    @GetMapping(value = "blog")
    public PageData<BlogEntity> getBlogListAjax() {
        int page = 1;
        int pageSize = 10;
        PageData<BlogEntity> blogList = blogService.getBlogList(page, pageSize);
        System.out.println(blogList);
        return blogList;
    }
}

3、访问Url

GET http://127.0.0.1:8080/ajax/blog