1.问题:匹配上url中的反斜杠"/"(%2f)
在springmvc 里,我要匹配:
http://yourdomain.com/start/xx/xx/xx/end
@RequestMapping("/{start}/**/{end}") public String vv(@PathVariable("start") String start, @PathVariable("end") String end){ }
然而,我需要获得url中间的数据:
@RequestMapping("/{start}/{mid:.*}/{end}")
但是却无法捕获。
也就是说,变量中不能带有"/"的。
2.我的解决方案
1.'/'有限
如:
/123/456/789/1011/1213
/123/456/789/1011
/123/456/789
@RequestMapping(value={"/{start}/{mid1}/{mid2}/{mid3}/{end}", "/{start}/{mid1.*}{mid2}/{mid3}/{end}", "/{start}/{mid1.*}{mid2}{mid3}/{end}"} ) public String vv(@PathVariable("start") String start, @PathVariable("mid1") String mid1, @PathVariable("mid2") String mid2, @PathVariable("mid3") String mid3, @PathVariable("end") String end){ if(StringUtils.isNotBlank(mid2){ mid1 +="/"+mid2; } if(StringUtils.isNotBlank(mid3){ mid1 +="/"+mid3; } //可以使用mid1了 ...... }
{mid1:.*} 是最大匹配
url数组里的变量必须相等
2."/" 数量可能非常多
如:/search/123/4/5/6/7/4/5/6/5/4/4/5/5/67/ok
只能使用 @RequestMapping("/search/**/{end}") 来拦截住请求
然后代码里通过:
request.getServletPath()
然后通过split("/")来拆分后取对应的内容拼接。
3.其它人的解决方案
http://stackoverflow.com/questions/2334787/how-to-match-a-spring-requestmapping-having-a-pathvariable-containing?rq=1
http://stackoverflow.com/questions/3686808/spring-3-requestmapping-get-path-value
http://stackoverflow.com/questions/7841770/optional-path-variables-in-spring-mvc-requestmapping-uritemplate
相关推荐
* 4)、来看请求地址和@RequestMapping标注的哪个匹配,来找到到底使用那个类的哪个方法来处理 * 5)、前端控制器找到了目标处理器类和目标方法,直接利用返回执行目标方法; * 6)、方法执行完成以后会有一个...
在上面的例子中,`/hello`是URL路径,`sayHello`方法会处理匹配这个路径的请求。`ModelAndView`是一个包含模型数据和视图名的对象,用于将数据传递到视图层。 `ModelAndView`是SpringMVC中用于将处理结果(模型数据...
更新 JSP 页面的登录跳转地址,确保符合 DispatcherServlet 的配置,例如,如果 URL 匹配规则是 `.do`,则登录按钮的链接应为 `login.do`。 通过以上步骤,你已经成功配置了一个基本的 SpringMVC 应用。当然,...
处理器映射器如`DefaultHandlerMapping`,它负责找到与请求URL匹配的Controller。处理器适配器如`RequestMappingHandlerAdapter`,它负责调用Controller的方法来处理请求。 在Controller层,开发者通常会编写一系列...
在IT行业中,SpringMVC和AOP(面向切面编程)是两个非常重要的概念,尤其在企业级Web应用开发中广泛...在实际项目中,这样的日志记录方案能够帮助我们追踪和分析系统的运行状态,对问题排查和性能优化具有重要作用。
例如,`@RequestMapping("/hello")` 将匹配所有到 "/hello" 的请求。 ### 第 3 章 映射请求参数 & 请求参数 处理请求参数有多种方式。你可以直接在方法签名中使用参数,如 `String name` 来获取请求参数;或者使用 ...
通常,我们可以创建一个与请求参数匹配的Java对象,然后使用`@ModelAttribute`注解将请求参数绑定到这个对象上: ```java @PostMapping("/submitData") public String submit(@ModelAttribute("formData") ...
SpringMVC 是一款基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)架构的应用程序。SpringMVC 的核心是 DispatcherServlet,它作为前端控制器,负责接收请求...
【标题】:“手写SpringMVC” 在Java Web开发领域,SpringMVC是Spring框架的一个重要组成部分,它是一个用于构建高效、灵活的...在实际项目中,这种深入理解有助于优化性能、提高代码质量,并解决可能出现的复杂问题。
4. **调用控制器**:找到匹配的控制器方法后,`DispatcherServlet` 将执行这个方法,处理业务逻辑。 5. **数据绑定与模型构建**:如果需要,控制器可以将业务对象绑定到模型,并将模型对象放入 `Model` 或 `...
* 可定制的绑定和验证:将类型不匹配作为应用级的验证错误,这可以保存错误的值,以及本地化的日期和数字绑定等 * 可定制的处理器映射和视图解析:灵活的模型可以根据名字/值映射,处理器映射和视图解析使应用策略从...
在IT行业中,SpringMVC是Spring框架的一个重要模块,它被广泛用于构建Web应用程序,尤其在企业级开发中占据核心地位。本篇文章将深入探讨如何使用SpringMVC来实现一个简单的登录功能,以及在此过程中涉及的关键知识...
对于POJO类型的参数,SpringMVC会尝试将请求中的参数与POJO的属性进行匹配绑定。 ##### 自定义参数绑定 对于日期等复杂类型,SpringMVC无法直接完成绑定,需要自定义参数绑定组件。可以通过`...
通配符的匹配很全面,但无法找到元素contextannotation-config【系统环境】windows 10【操作内容】springMVC 4/ Inte
在Java Web开发中,SpringMVC是一个非常流行的框架,它为构建基于模型-视图-控制器(MVC)模式的应用程序提供了强大的支持。本实例代码着重讲解了SpringMVC中的四种映射方式以及拦截器的实现,这对于理解和掌握...
7. **RESTful风格的支持**:SpringMVC 4.0增强了对HTTP方法(GET、POST、PUT、DELETE等)的支持,方便构建RESTful Web服务,通过@RequestMapping注解的params、headers属性可以精确匹配HTTP请求的参数和头信息。...
`DispatcherServlet`启动时,默认会在`/WEB-INF/`目录下寻找一个与`servlet-name`相匹配的配置文件(例如:`blog-servlet.xml`)。在这个配置文件中,我们可以定义需要使用的Bean以及它们的配置。这些配置将用于初始...
2. **HandlerMapping**:处理器映射器,负责找到与请求匹配的处理器,这通常是一个Controller类的方法。 3. **HandlerAdapter**:处理器适配器,用来调用处理器(Controller)的方法,因为它不知道具体的处理器是...
可以放在类级别或方法级别,用于匹配URL模式。 3. **@GetMapping, @PostMapping, @PutMapping, @DeleteMapping**:这些是Spring 4.0引入的注解,分别对应HTTP的GET、POST、PUT、DELETE方法,简化了@RequestMapping...