目录

一、RESTful快速开发

二、案例:基于RESTful页面数据交互

1、制作SpringMVC控制器,并通过PostMan测试接口功能

2、设置对静态资源的访问放行

3、前端页面通过异步提交访问后台控制器

一、RESTful快速开发

名称:@RestController

类型:类注解

位置:基于SpringMVC的RESTful开发控制器类定义上方

作用:设置当前控制器类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能

范例:

@RestController

public class BookController{

}

名称:@GetMapping @PostMapping @PutMapping @DeleteMapping

类型:方法注解

位置:基于SpringMVC的RESTful开发控制器方法定义上方

作用:设置当前控制器方法请求访问路径与请求合作,每种对应一个请求动作,例如@GetMapping对应Get请求

范例:

@GetMapping("/{id}")

public String getById(@PathVariable Integer id){

System.out.println("book getById..." + id);

return "{'module':'book getById'}";

}

属性:value(默认):请求访问路径

简化开发前:

 简化开发后:

@RestController

@RequestMapping("/books")

public class BookController{

@PostMapping

public String save(@RequestBody Book book){

System.out.println("book save..." + book);

return "{'module':'book save'}";

}

@PutMapping

public String update(@RequestBody Book book){

System.out.println("book update..." + book);

return "{'module':'book update'}";

}

}

二、案例:基于RESTful页面数据交互

1、制作SpringMVC控制器,并通过PostMan测试接口功能

@RestController

@RequestMapping("/books")

public class BookController {

@PostMapping

public String save(@RequestBody Book book){

System.out.println("book save ==> "+ book);

return "{'module':'book save success'}";

}

@GetMapping

public List getAll(){

System.out.println("book getAll is running ...");

List bookList = new ArrayList();

Book book1 = new Book();

book1.setType("计算机");

book1.setName("SpringMVC入门教程");

book1.setDescription("小试牛刀");

bookList.add(book1);

Book book2 = new Book();

book2.setType("计算机");

book2.setName("SpringMVC实战教程");

book2.setDescription("一代宗师");

bookList.add(book2);

Book book3 = new Book();

book3.setType("计算机丛书");

book3.setName("SpringMVC实战教程进阶");

book3.setDescription("一代宗师呕心创作");

bookList.add(book3);

//模拟数据

return bookList;

}

}

2、设置对静态资源的访问放行

@Configuration

public class SpringMvcSupport extends WebMvcConfigurationSupport {

//设置静态资源访问过滤,当前类需要设置为配置类,并被扫描加载

@Override

protected void addResourceHandlers(ResourceHandlerRegistry registry) {

//当访问/pages/????时候,从/pages目录下查找内容

registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");

registry.addResourceHandler("/js/**").addResourceLocations("/js/");

registry.addResourceHandler("/css/**").addResourceLocations("/css/");

registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");

}

}

3、前端页面通过异步提交访问后台控制器

//添加

saveBook () {

axios.post("/books",this.formData).then((res)=>{

});

},

//主页列表查询

getAll() {

axios.get("/books").then((res)=>{

this.dataList = res.data;

});

},

执行结果:

主页列表查询:

 添加功能:

 

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: