-
2021-08-12 10:39:29
今天遇到一个restful接口路径传参问题,我的接口路径传参带斜杠,这样和restful地址就不一致了报404错误,然后看到这样一个解决方法,亲测可用。
@GetMapping("user/find/by/{name}/**") public String getMapping(@PathVariable String name, HttpServletRequest request){ String path = request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE).toString(); String path2 = request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE).toString(); String args = new AntPathMatcher().extractPathWithinPattern(path2, path); return name + "/" + args; }
更多相关内容 -
RestFul风格传参
2021-01-04 21:50:27RestFul风格就是所有参数都由/传递,而不是传统的?xx&xx形式 例如:写一个Controller: package controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import...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
-
【restful】RestFul风格传参 参数为空 @PathVariable报404解决
2022-04-12 15:41:47多个参数传参数时, 有参数为空情况下, 报错的处理问题
页面
<a href="${pageContext.request.contextPath}/book/jump/updateBook/${book.bookID}">修改</a> <a class="btn btn-primary" href="${pageContext.request.contextPath}/book/jump/addBook">新增书籍</a>
- 这里想跳转两个页面,修改页面
需要传id
, 新增页面不需要
controller
@RequestMapping("/jump/{page}/{id}") public String jumpPage(@PathVariable String page,@PathVariable Integer id, Model model){ }
- 这种方式修改页面没问题, 新增页面没有传id就报404了
解决
@RequestMapping(value = {"/jump/{page}","/jump/{page}/{id}"})//id可以为空 public String jumpPage(@PathVariable String page,@PathVariable(required = false) Integer id, Model model){ }
- 可以为空的参数添加
@PathVariable(required = false)
- RequestMapping修改
@RequestMapping(value = {"/jump/{page}","/jump/{page}/{id}"})
小结:
- 参数为空时取
"/jump/{page}"
- 参数有值取
/jump/{page}/{id}
- 二选一, 参数有值时取有参数的url, 否则取没有参数的url
- 这里想跳转两个页面,修改页面
-
请求类型get,delete,post,put 的用法,以及RestFul风格传参
2021-08-02 13:33:17RestFul风格: 在上述的四大请求类型中都可以使用(单独的体系) 参数使用/分割 注意参数结构 灵活选用. RestFul风格-简单参数接收 /** * 1.restFul实现用户查询 * URL: http://localhost:8090/user/100 * type:...请求的类型是由程序员手动控制
http常用的请求类型 8种 但是一般四种需要单独的记忆.
分类A
1.get 请求类型 查询
2.delete 请求类型 删除
分类B
1.post 请求类型 form表单提交 新增操作
2.put 请求类型 更新操作1. 查询操作时 GET请求类型 特点: 参数结构key=value URL?key=value&key2=value2
2. 新增(form表单) POST请求类型 特点: 会将参数封装到请求头中 相对更加的安全 key=value key2=value2 可以直接采用对象的方式接收.
Axios中的post 参数是一个JSON串 {key1:vallue1, key2:value2} 将JSON串转化为对象 @RequestBody
3. 删除操作 DELETE请求类型 特点:与GET请求类型 一致的.
4. 更新操作 PUT请求类型 特点: 与POST请求类型一致的.
5. RestFul风格: 在上述的四大请求类型中都可以使用(单独的体系) 参数使用/分割 注意参数结构 灵活选用.
RestFul风格-简单参数接收
/** * 1.restFul实现用户查询 * URL: http://localhost:8090/user/100 * type: GET * RequestMapping 默认的可以接收所有的请求类型 * RestFul语法: * 1.参数的位置固定. * 2.参数必须使用{}包裹 * 3.必须使用@PathVariable 动态的接收参数 * 注意事项: {参数名称}必须与方法中的名称一致. */ //@RequestMapping(value = "/user", method = RequestMethod.GET) @GetMapping("/user/{id}") public String restFulGet(@PathVariable Integer id){ return "restFul动态的获取参数:"+id; }
RestFul风格-对象参数接收
/** * 需求: 查询name=tomcat age=18 sex=女的用户 * 要求使用:restFul * URL: http://localhost:8090/user/tomcat/18/女 * restFul的优化: * 如果{参数名称}与对象中的属性名称一致, * 则SpringMVC动态的为对象赋值, * @PathVariable 可以省略 * 注意事项: * 前后端的参数的传递必须保持一致!!!! */ @GetMapping("/user/{name}/{age}/{sex}") public User restGetUser(User user){ //执行后续的业务操作 userService return user; }
-
restFul风格传参, 参数中带斜杠/, 后端报404, 在必须用restFul传参的前提下, 怎么解决
2020-04-14 12:05:18// 伪代码 ``` @GetMapping("user/find/by/{name}") public void findByName(@PathVariable ...这样url就变成user/find/by/xiao/ming 了, 接口匹配不到, 报404, 在必须要用restFul传参的情况下, 这种问题要怎么解决 -
RestFul风格传参 参数为空
2022-04-29 10:39:24引用自 -
RestFul风格Postman传参测试
2020-05-18 21:53:20RestFul风格Postman传参测试 一、传递单个参数 以根据id删除为例 controller层: @CrossOrigin @RestController @RequestMapping("/job") public class JobController { @Autowired private JobService jobService... -
前端调用restful风格的接口怎么传参?
2021-08-18 11:09:53前端调用restful风格的接口怎么传参? 接口url 用反引号 url + ${参数} 即可传参 -
vue中restful风格下的传参
2020-05-21 21:51:35vue中restful风格下的传参: 参数传递: this.$router.push({ name: ‘pumpdetail’, params: { pumpId: 100 } }) 路由文件 { path: ‘/pumpdetail/:pumpId’, name: ‘pumpdetail’, }, 参数接收: this.$route.... -
RESTFUL风格的URL请求及参数接收
2020-12-24 10:35:14RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动...---百度百科以前使用最多的请求方式还是post,post一时爽一直post一直爽,直到我接触了restful风格API,嗯真香!我就简单展示一下我怎么使... -
什么是RestFul架构风格&&Springboot四种传参方式
2021-12-07 14:42:29什么是RestFul架构风格&&Springboot四种传参方式 1、Restful Rest:资源表现层状态转化 所谓的资源就是指网络中一切事物都是资源Resource 每一个资源都有一个唯一URL 表现层:将资源具体呈现出来形式,称之... -
RestTemplate的Restful风格使用
2021-12-31 09:41:24} RestFul风格的方法 从上面的图可以看出来,有些方法是没有返回的,比如put和delete,但是可以封装请求参数和请求头。 例子一 HttpHeaders headers = new HttpHeaders(); headers.add("Authorization", "Bearer");... -
RESTful风格的API接口开发教程
2020-12-24 10:35:13关于请求方式及使用范围,可以参考 RESTful API 接收参数 @RequestParam 我们来写一个示例并说明: public String getInfo(@RequestParam(name = "param", required = false, defaultValue = "param dafault value")... -
thymeleaf中使用Restful风格的两种传参形式
2022-02-12 20:26:31方式一: th:href="@{/query/{id}(id=${c.getId()})}" 方法二:多个参数 字符串拼接 th:href="@{'/delete/'+${a.getId()}+'/'+${c.Id()}} -
用RestFul风格进行传参的时候返回找错地址
2021-06-11 12:34:21用restful风格进行传参的时候返回找错地址 SpringMVC中如果使用RestFul风格进行传参,且不在spring.xml配置中视图解析器中加前缀 如下所示: 则会出现下面这样的错误 服务器去找rest/2/4下的hello.jsp了,而不是... -
面试中问的SpringMvc相关以及Restful风格的几种传参方式以及ajax跨域解决
2021-03-18 11:35:25json字符串转对象 json.parse(字符串对象) json对象序列化json字符串 json.stringify(json对象) json对象转Java对象 jsonObiect.FromObject(字符串),转成Java对象后直接.toString()转成字符串 获取Restful风格参数... -
3-6.restFul传递方式/Axios
2021-07-30 09:11:24restFul请求方法路径不能出现动词 RestFul风格实现CURD操作: 1.查询: http://localhost:8090/user/100 type:GET 2.新增: http://localhost:8090/user/tomcat/18/男 type:POST 3.删除: ... -
Vue的Axios中get.post.put.dele传参,以及增删改查页面,弹窗,springboot的Controller的Restful风格响应
2020-06-19 19:34:35项目介绍地址:https://blog.csdn.net/weixin_45573378/article/details/106862184 废话不多直接上代码 Vue <template> <div id="main"> <div> <h1>检查项</h1>... -
什么是RestFul架构 ? Springboot四种传参方式 ?
2022-02-23 14:04:111、Restful Rest:资源表现层状态转化 所谓的资源就是指网络中一切事物都是资源Resource 每一个资源都有一个唯一URL 表现层:将资源具体呈现出来形式,称之为表现层,例如jsp,html 状态转化:用来操作展示出来... -
用Postman请求Restful风格接口,url含有中文的问题
2020-11-18 18:23:30我的接口,Restful风格 浏览器访问,成功 Postman访问,非中文可以 Postman访问,中文出错 解决方案 将中文转为相应的URL编码 使用URL编码代替中文传参 -
vue 调用 RESTful风格接口操作
2020-11-19 22:45:39首先是简单的java接口代码 写了四个让前端请求的接口,以下为代码 @GetMapping("/v1/user/{username}/{password}") public Result login2(@PathVariable("username") String username, @PathVariable("password")... -
java_Restful传递数组参数及注解大全,RESTful 一种软件架构风格,设 - phpStudy
2021-03-14 16:38:16Restful传递数组参数及注解大全RESTful 一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于... -
传统形式的传参和Restful形式的传参对比
2020-10-07 20:49:38一:get形式传参 1、传统url传参 // 传统形式的传参 ... method: "get", }) // 传统形式的传参 app.get('/books', (req, res) =>...2、Restful形式传参: // restful形式的传参 fetch("http://localhost:300 -
vue结合axios实现restful风格的四种请求详解
2019-03-13 10:36:58以上就是常用的四种restful风格的请求,都是博主自己开发中请求的数据,都没问题,但是具体的请求还要看大家和后端数据格式的规范以及一些业务熟悉,这里只提供思路。 切记跨域问题,记得让后端处理,如果是本地的... -
简单理解Restful风格、get请求、post请求
2021-07-15 16:53:46一、什么是Restful风格: 是基于Rest理念的一套开发风格,以URL方式进行资源的传递,作为用户交互的入口,有四种请求方式,分别是get,post,put,delete。restful风格只返回json或xml数据,不关心页面展现 1、get...