RestFul风格 — 使用@PathVariable传递参数报错404的解决

目录
  • @PathVariable传递参数报错404
  • restFul风格传参, 参数中带斜杠/问题

@PathVariable传递参数报错404

代码:

@RequestMapping("/test1/{a}/{b}")
public String test1(@PathVariable int a, @PathVariable int b, Model model){
    int res=a+b;
    model.addAttribute("msg",res);
    return "test";
}

报错:

错误原因:视图解析器配置配置中,前缀少写了一个 "/" .

正确:

    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!--后缀-->
        <property name="suffix" value=".jsp" />
    </bean>

restFul风格传参, 参数中带斜杠/问题

今天遇到一个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;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • @PathVariable注解,让spring支持参数带值功能的案例

    @PathVariable的作用 获取URL动态变量,例如 @RequestMapping("/users/{userid}") @ResponseBody public String getUser(@PathVariable String userid){ return "userid=" + userid; } @PathVariable的包引用 spring自从3.0版本就引入了org.springframework.web.bind.annotation.

  • Restful传递数组参数及注解大全

    RESTful 一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. 需要传递数组参数的情况,如果是一般的form表单,可以直接定义参数类型为List<String>即可(不能定义为数组类型,否则只能得到一个null). 示例代码如下: @POST @Path("/user" ) public Response createUser(@FormPara

  • Java进阶之走进RESTful接口

    一.什么是API API (应用程序编程接口) 两种用法 1.类似jar的使用:A软件将功能打包成组件(功能块:比如java中的jar),让B软件导入直接使用 2.http请求方式:A项目(系统)提供一个映射方法路径,B项目(系统)发起http请求得到对应功能 (应用请求方式) 应用接口:很多情况下,需要把系统的部分功能(组件)作为服务暴露给外部的其他应用使用,所以就需要把系统中的服务作为API接口暴露出去,一般分为公共接口和私用接口(公司内部) 二.了解Web技术的发展阶段 静态内容阶段:We

  • SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)

    pom.xml增加依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <

  • RestFul风格 — 使用@PathVariable传递参数报错404的解决

    目录 @PathVariable传递参数报错404 restFul风格传参, 参数中带斜杠/问题 @PathVariable传递参数报错404 代码: @RequestMapping("/test1/{a}/{b}") public String test1(@PathVariable int a, @PathVariable int b, Model model){ int res=a+b; model.addAttribute("msg",res); retur

  • SpringBoot启动访问localhost:8080报错404的解决操作

    1.确定本地网络是通的: 2.确定SpringBootq启动后是不报错的 3.查看是不是自己在配置文件中加入了项目路径: 如果加入了项目路径的话,直接访问localhost:8080是不会到欢迎页面的,需要加上项目路径才能访问到欢迎页面,即localhost:8080/sell 补充知识:SpringBoot的web项目启动起来无法访问,访问时还是提示无法访问该网站 有时候可能是因为你的pom中导入了太多的依赖,一些依赖之间可能存在冲突导致项目未完全启动而无法访问显示:无法访问该网站 以上这篇S

  • Vue3刷新页面报错404的解决方法

    vue-router历史模式 最近在学习Vue3的过程中遇到了一个问题,那就是在写代码的过程中,每当代码发生了变动,页面一刷新,原先的页面就会变成这个样子: 打开控制台一看: 这时候刷新.在浏览器地址栏直接输入地址也不管用. 每次写一点代码,都不能及时看到结果,需要从8080重新进入才可以,其中的崩溃可想而知. 此时判断应该是路由跳转的问题,于是来到router.js文件看一看: import { createRouter, createWebHistory } from 'vue-router

  • 解决 Spring RestTemplate post传递参数时报错问题

    今天跟同事接口联调,使用RestTemplate请求服务端的post接口(使用python开发).诡异的是,post请求,返回500 Internal Server Error,而使用get请求,返回正常.代码如下: HashMap<String, Object> hashMap = Maps.newHashMap(); hashMap.put("data", JSONObject.toJSONString(params)); url = "http://mydo

  • Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    最近做一个批量导入的需求,将多条记录批量插入数据库中. 解决思路:在程序中封装一个List集合对象,然后把该集合中的实体插入到数据库中,因为项目使用了MyBatis,所以打算使用MyBatis的foreach功能进行批量插入.期间遇到了"SQL 命令未正确结束 "的错误,最终解决,记录下来供以后查阅和学习. 首先,在网上参考了有关Mybatis的foreach insert的资料,具体如下: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach

  • Pandas之read_csv()读取文件跳过报错行的解决

    读取文件时遇到和列数不对应的行,此时会报错.若报错行可以忽略,则添加以下参数: 样式: pandas.read_csv(***,error_bad_lines=False) pandas.read_csv(filePath) 方法来读取csv文件时,可能会出现这种错误: ParserError:Error tokenizing data.C error:Expected 2 fields in line 407,saw 3. 是指在csv文件的第407行数据,期待2个字段,但在第407行实际发现

  • 文件上传SpringBoot后端MultipartFile参数报空问题的解决办法

    最近写了一个文件上传的小demo,就是简单的前端html页面,后端controller接收,但是后端一直报错文件为null,看了很多文章,有说spring-boot自带的org.springframework.web.multipart.MultipartFile和Multipart冲突了,要在启动类中加入@EnableAutoConfiguration(exclue={MultipartAutoConfiguration.class}),有说要在MultipartFile参数前加上@Reque

  • 解决VueCil代理本地proxytable无效报错404的问题

    前言 因为项目中遇到了这个bug:Vue cil2中配置代理proxytable成功,却无效报错404,在后端和代理都配置无误的情况下,还是报404,先已解决,特记录,希望能帮助到他人: 正文 1. 为什么要使用代理? 代理的作用是:把请求代理转发到其他服务器的中间件: 例如:我们当前主机为http://localhost:8080/,现在我们有一个需求,如果我们请求/api,我们不希望由3000来处理这个请求,而希望由另一台服务器https://www.example.org/api来处理这个

  • react创建项目启动报错的完美解决方法

    目录 一.预备知识: 二.创建项目步骤: 三.启动项目时可能出现的报错: 四.Todolist项目相关库: 五.GitHub搜索案例相关库: 六.尚硅谷路由案例相关库: 七.UI库案例相关库: 八.redux相关库: 一.预备知识: npm (也可以用yarn,本文以npm为例) npm介绍 全称为Node Package Manager,是随同NodeJS一起安装的包管理工具. 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地

  • Vue代理报错404问题及解决(vue配置proxy)

    目录 Vue代理报错404问题 第一种路径拼接 /api 情况 第二种路径不变情况 注意点 新增说明:配置多个代理怎么搞? 总结 Vue代理报错404问题 问题描述: 代理后出现404: 第一种路径拼接 /api 情况 const path = require('path'); function resolve(dir) { return path.resolve(__dirname, dir) } module.exports = { publicPath: process.env.NODE_

随机推荐