Ajax在SpringMVC使用
# 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>
2
3
4
5
6
<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
# 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;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 3、访问Url
GET http://127.0.0.1:8080/ajax/blog