Ajax在SpringMVC基本使用
数据交互:就是Controller — View之间的数据交互
控制器:Controller 如何传递数据给 View
视图:View(jsp,html,vue… )如何传递数据给 控制器Controller
先定标准,写好控制器,做好接口的测试!
1、添加Jar文件
com.fasterxml.jackson.core:jackson-databind:2.12.3com.fasterxml.jackson.core:jackson-core:2.12.3com.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>会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。
我们处理响应ajax请求时,就使用到了对json的支持。
对action写JUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean。
CSS和JS失效,需要在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