`

springMVC @PathVariable中间带/问题处理

阅读更多
问题:请求地址/username/resourceUrl/methodName,其中username可能有也可能没有,resourceUrl中会带/,这个时候要使用@PathVariable,不能正确匹配controller

解决思路:把resourceUrl处理成一个不带/的参数即可
1、约定好/替换方案,比如请求方把/全部替换为--
2、通过url编码解码处理 / 经过编码变成%2F 把resourceUrl编码后,这个时候发现还是不能请求到正确的方法,因为到spring时已经自动解码了。可以把%2F再编一次码变成%252F。%编码后是25
/**
*/abc/xiaoming/h5/user.json/get
*/
@ResponseBody
    @RequestMapping(method=RequestMethod.POST ,value="/abc/{username}/{resourceUrl}/{methodName}")
    public String dubboMock(HttpServletResponse response,@PathVariable String username,@PathVariable String resourceUrl,@PathVariable String methodName){
		
    }
3、放弃使用PathVariable,手动去处理
 /**
*/abc/xiaoming/h5/user.json/get
*/
@ResponseBody
    @RequestMapping(method=RequestMethod.POST ,value="/abc/**")
    public String dubboMock(HttpServletResponse response,HttpServletResponse request){
	String url = request.getRequestURI();
        //处理url
    }
分享到:
评论

相关推荐

    SpringMVC@RequestMapping(重点)@RequestParam@PathVariable示例

    例如,你可以在一个方法中同时使用`@PathVariable`和`@RequestParam`来处理包含动态路径和请求参数的请求: ```java @GetMapping("/users/{userId}/books/{bookId}") public Book getUserBook(@PathVariable(...

    SpringMVC中使用@PathVariable绑定路由中的数组的方法

    SpringMVC 中使用 @PathVariable 绑定路由中的数组的方法 在 SpringMVC 中,使用 @PathVariable 绑定路由中的数组是一种常见的需求,特别是在批量删除功能时,需要传递一个数组给后台,以便删除多条数据。在本文中...

    spring mvc中的@PathVariable获得请求url中的动态参数

    这个方法处理 `/product/{productId}` 的GET请求,`productId`是URL路径的动态部分,通过`@PathVariable`注解将其值赋给`productId`参数。 - `getRegExp` 方法: ```java @RequestMapping(value="/javabeat/{...

    注解配置SpringMVC

    public String updateUser(@PathVariable Long id, User user) { // ... } @DeleteMapping("/delete/{id}") public String deleteUser(@PathVariable Long id) { // ... } } ``` ### 4. @PathVariable ...

    OA系统-springMVC/Mybatis/Mysql/Bootstrap

    OA系统-springMVC/Mybatis/Mysql/Bootstrap OA系统-springMVC/Mybatis/Mysql/Bootstrap OA系统-springMVC/Mybatis/Mysql/Bootstrap

    SpringMvc中获取 PathVariable的值的方式.docx

    在Spring MVC框架中,`@PathVariable` 是一个用于从URL模板中提取占位符值的注解,这对于处理动态路由非常有用。以下是关于在Spring MVC中获取`PathVariable`的值的详细方法: ### 一、URL模板与`@PathVariable` ...

    SpringMVC-2 使用@RequestMapping映射请求

    以上代码展示了如何使用`@PathVariable`获取URL路径中的变量,以及`@RequestBody`从请求体中获取JSON或其他格式的数据。 关于`HiddenHttpMethodFilter`,这是一个Spring MVC提供的过滤器,用于处理浏览器不支持PUT...

    SSM笔记-SpringMVC REST风格、基本标签初识

    总结,SpringMVC提供了强大的工具来构建RESTful服务,结合`@RequestMapping`及其衍生注解,可以轻松地处理HTTP请求,并通过`@PathVariable`、`@RequestParam`等获取请求参数。理解并熟练运用这些知识,能帮助开发者...

    springmvc-restful-pathvariable

    本文将深入探讨如何使用`@PathVariable`来处理URL中的动态参数,以及如何解决在Spring MVC中可能出现的乱码问题。 首先,`@PathVariable`是Spring MVC提供的一个注解,用于获取URL路径中的变量值。当我们在控制器...

    springMVC接收参数的几种注解.pdf

    当定义了一个带有占位符 `{paramId}` 的路由如 `/owners/{ownerId}/pets/{petId}`,`@PathVariable` 可以将这些占位符的值绑定到控制器方法的参数上。例如: ```java @Controller @RequestMapping("/owners/{...

    springmvc2.5.6实现webservice rest接口实例

    1、访问地址:http://localhost:8080/springmvc/user/hello?userId=123456 2、配置步骤: 1)引入架包; 2)写controller类 3)写application-yg-servlet.xml 4)配置web.xml 3、不足之处 spring-webmvc-2.5.6...

    springmvc注解详解

    public String show(@PathVariable("id") long id) { // ... } } ``` 在上面的例子中,@RequestMapping 注解定义了类级别的请求映射,所有的方法级别的请求映射都会加上"/departments"前缀。 3. @RequestParam ...

    springmvc之@RequestMapping的demo

    5. **路径变量**:使用`@PathVariable`可以从URL路径中提取值,如: ```java @GetMapping("/user/{id}") public User getUser(@PathVariable("id") int userId) { // ... } ``` 这个方法会从"/user/{id}"的...

    SpringMVC注解开发的详解.doc

    除了基本的`@Controller`和`@RequestMapping`,SpringMVC还提供了许多其他注解来增强控制器的功能,如`@RequestParam`用于获取请求参数,`@PathVariable`用于获取URL路径变量,`@RequestBody`用于将请求体转换为Java...

    springmvc-base-restful-04.rar

    `@PathVariable`用于获取URL中的占位符参数,`@RequestBody`用于从请求体中读取数据。 在实际开发中,我们还需要考虑错误处理、验证、分页、排序等功能。Spring MVC提供了异常处理机制,可以自定义异常处理器来返回...

    Spring MVC--6.RESTful SpringMVC CRUD

    在实现上述功能时,Spring MVC提供了一些核心组件,如`DispatcherServlet`(负责分发请求)、`ModelAndView`(用于处理模型和视图)、`@Controller`和`@RequestMapping`(映射HTTP请求),以及`@PathVariable`、`@...

    SpringMVC例子注解

    在上面的例子中,`@PathVariable("id")`获取URL中的`id`参数。 5. `@RequestParam`: 用于从HTTP请求的查询参数中获取值。例如,如果你有一个`/search?query=keyword`的请求,`@RequestParam("query")`就能获取到`...

    springMVC接收参数的几种注解.docx

    public void findPet(@PathVariable String ownerId, @PathVariable String petId) { // ... } ``` 如果模板变量名与参数名不同,可以通过`@PathVariable("name")`指定。 2. **@RequestHeader** - `@Request...

    springMVC注解实现

    SpringMVC是一个强大的Java web应用程序开发框架,它利用模型-视图-控制器(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高了应用的可维护性和可扩展性。在这个“springMVC注解实现”的资源中,我们可以...

Global site tag (gtag.js) - Google Analytics