赞
踩
常用的网络请求方式包括GET, POST, PUT, DELETE等,这些请求方式在Springboot中是如何使用的呢?下面就对这个内容进行探究。
Springboot使用@RequestMapping来映射请求,前端发来请求可以通过@RequestMapping来决定由哪个函数处理。
@RequestMapping主要由value和method两个属性,value指的是映射路径,method指的是何种请求(可以设置多个)。例如:@RequestMapping(value=“/login”,method=RequestMethod.GET)
@GetMapping、@PostMapping、@PutMapping和@DeleteMapping分别是@RequestMapping请求方法为get、post、put、delete的派生注解。也就是说凡是使用到上面四种注解的地方都可以使用@RequestMapping来代替。如果@RequestMapping不设置method,那么它将接收符合条件的任何访问方式的请求。
下面是一个请求的前后端的代码示例(使用get请求方式):
@RequestMapping("/list")
public TableDataInfo list(CourseInfo courseInfo){
Integer pageNum = courseInfo.getPageNum();
Integer pageSize = courseInfo.getPageSize();
String orderBy = courseInfo.getOrderBy();
PageUtils.startMyPage(pageNum,pageSize,orderBy);
List<CourseInfo> courseInfoList = courseService.selectCourseInfoList(courseInfo);
return PageUtils.getMyDataTable(courseInfoList);
前端
export function listCourse(query){
return request({
// 这里多加一个/course的原因是在后端的整个类上加了 @RequestMapping("/course")注解
url:'/course/list',
method:'get',
params:query
})
}
一般在报错的http状态为405的时候,指的是请求方法不允许。出现这种错误需要考虑前后端的请求方法是否匹配。
可以使用带有占位符的@RequestMapping方法,将URL中的占位符绑定到处理方法的参数里。
@RequestMapping("/{id}")
public AjaxResult getCourse(@PathVariable("id") Long id){
return AjaxResult.success(courseService.selectCourseById(id));
}
相当于:
@RequestMapping(value="/{id}", method=RequestMethod.PUT)
实例后端:
@PutMapping
public AjaxResult edit(@RequestBody CourseInfo courseInfo){
return toAjax(courseService.updateCourse(courseInfo));
}
实例前端:
export function updateCourse(data){
return request({
url:'/course',
method:'put',
data:data,
})
}
相当于:
@RequestMapping(value="", method=RequestMethod.POST)
实例后端:
@PostMapping
public AjaxResult add(@RequestBody CourseInfo courseInfo){
System.out.println(courseInfo.toString());
return toAjax(courseService.insertCourse(courseInfo));
}
实例前端:
export function addCourse(data){
return request({
url:'/course',
method:'post',
data:data,
})
}
相当于:
@RequestMapping(value="/{id}", method=RequestMethod.DELETE)
实例后端:
@DeleteMapping("/{ids}")
public AjaxResult delCourse(@PathVariable Long []ids){
return toAjax(courseService.delCourse(ids));
}
实例前端:
export function delCourse(id) {
return request({
url:'/course/'+id,
method:'delete'
})
}
对@RequestMapping的总结告一段落,主要是RequestMapping的作用、参数、路由占位符使用,及其派生注解等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。