热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RestFul风格传参

RestFul风格就是所有参数都由传递,而不是传统的?xx&xx形式例如:写一个Controller:packagecontrolle

RestFul风格就是所有参数都由/传递,而不是传统的?xx&xx形式

例如:写一个Controller:

package controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class RestfulController {
@RequestMapping("/add")
public String test(int a,int b, Model model){int res = a+b;
model.addAttribute("msg","结果为"+res);
return "test";
}
}

可以看到出现a,b没找到的错误
在这里插入图片描述
按照传统方式传递参数:?a=1&b=2

在这里插入图片描述
那么按照Restful风格传递参数就应该:在方法参数值前加@PathVariable注解,并在url上直接绑定参数,可以同时设置Request的方法类型(GET、POST、DELETE、OPTIONS、HEAD、PATCH、PUT、TRACE)

@PathVariable:让方法参数的值对应绑定到一个url模板变量上

package controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class RestfulController {
@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET)
public String test(@PathVariable int a,@PathVariable int b, Model model){int res = a+b;
model.addAttribute("msg","结果为"+res);
return "test";
}
}

再次开启Tomcat,并设定a=1,b=3:
/add/1/3传递参数

在这里插入图片描述
这就是restful风格传参

也可以通过变相的组合注解实现:

  • @PostMapping
  • @GetMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping

推荐阅读
author-avatar
长江7808
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有