gpt4 book ai didi

spring - @RequestMapping 正则表达式

转载 作者:行者123 更新时间:2023-12-04 18:31:07 27 4
gpt4 key购买 nike

我正在尝试为 spring @RequestMapping 注释创建值属性以像这样映射 url

/educationDistrict/308/action/resetAddressesForYear/1

还有这个

/educationDistrict/308/action/resetAddressesForYear

我有这个

@RequestMapping(value = "/{repository}/{id}/action/{methodName:[A-z]*}{v:.*}", method = RequestMethod.POST)

但第一个 url 不匹配。

由于 spring-hateoas,我不能使用多值 https://github.com/spring-projects/spring-hateoas/issues/186

Spring 4.1.5

最佳答案

@RequestMapping中的URL映射末尾添加/**。您可以检索 URL 的最后一部分,如下所示:

@RequestMapping(value = "/{repository}/{id}/action/{methodName:[A-z]*}{v:.*}/**", method = RequestMethod.GET)
public ModelAndView welcome(@PathVariable("methodName") String name, HttpServletRequest request) {

String mvcPath = (String) request.getAttribute(
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
int index = StringUtils.lastIndexOf(mvcPath, "/");

System.out.println("Method name - " + name);
System.out.println("Rest of the URL - " + mvcPath.substring(index+1));

ModelAndView model = new ModelAndView();
model.setViewName("index");
model.addObject("name", mvcPath);

return model;
}

注意:我已经使用 StringUtils Apache Commons 找到了 / 的最后一个索引。

关于spring - @RequestMapping 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29160917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com