Regex 类级别RequestMapping的负前瞻正则表达式
我正在使用Spring3.0.1并开发一些REST调用。我有一个正则表达式,我以前在方法级别使用过,它工作得很好。然而,由于设计上的改变,我决定将所有这些调用分离到一个单独的控制器中。因此,我使用相同的正则表达式在类级别配置了RequestMapping,但它似乎不起作用。在类级映射中可以匹配的正则表达式类型是否有限制?以下是两个电话:Regex 类级别RequestMapping的负前瞻正则表达式,regex,spring,rest,controller,negative-lookahead,Regex,Spring,Rest,Controller,Negative Lookahead,我正在使用Spring3.0.1并开发一些REST调用。我有一个正则表达式,我以前在方法级别使用过,它工作得很好。然而,由于设计上的改变,我决定将所有这些调用分离到一个单独的控制器中。因此,我使用相同的正则表达式在类级别配置了RequestMapping,但它似乎不起作用。在类级映射中可以匹配的正则表达式类型是否有限制?以下是两个电话: @Controller @RequestMapping("/abcd") public class ControllerClass {.... @Requ
@Controller
@RequestMapping("/abcd")
public class ControllerClass
{....
@RequestMapping(value="/{var1}/{var2:(?!(ABC|XYZ).+/{var3}")
public @ResponseBody SomeObject doSomething(@PathVariable("var1") String var1, @PathVariable("var2") String var2), @PathVariable("var3") String var3 {.....}
}
上面的操作很好,与任何东西都匹配,例如/abcd/random/HJGK/,但与预期的/abcd/random/ABC/不匹配
但是,以下内容的工作方式不同:
@Controller
@RequestMapping("/abcd/{var1}/{var2:(?!(ABC|XYZ).+}/")
public class ControllerClass
{....
@RequestMapping(value="{var3}/")
public @ResponseBody SomeObject doSomething(@PathVariable("var1") String var1, @PathVariable("var2") String var2, @PathVariable("var3") String var3) {.....}
}
你知道这里有什么不同或错误吗?我认为前者不起作用,因为你有一个问题。请尝试
/abcd/{var1}/{var2:(?:(?!(?:ABC|XYZ))+}/
。您好,您的解决方案似乎排除了任何版本的ABC,即即使字符串是HHDABC,也会被排除。我只希望ABC或XYZ完全被排除在外。谢谢您的帮助:)好的,那么您仍然需要将其修复为@RequestMapping(“/abcd/{var1}/{var2:(?!(ABC | XYZ)})。+}/”
。现在行了吗?不行。出于某种原因,它似乎没有把它捡起来。在DispatcherServlet中,我一直收到未找到此HTTP请求的映射的错误。