我只想在蔬菜名称不是胡萝卜,豆类或洋葱的情况下访问该方法,因此如果我给番茄,它应该返回视图。我正在使用以下网址,该网址有问题吗?
@RequestMapping("/**/vegetables/{name:^[carrot|beans|onions]}")
public String vegetablesNames(){
return "vegetables";
}
最佳答案
您应该在方法内部进行验证:
@RequestMapping("/vegetables/{name}")
public String vegetablesNames(@PathVariable String name){
if (name.matches("your regex") {
throw new RuntimeException(name + " doesn't match");
}
return "vegetables";
}
@PathVarialbe
是从请求URI
中提取的变量。您可以提取它并随心所欲地玩它。基本上,路径应描述该uri可用的资源。如果资源不可用,则响应应为
NOT_FOUND
。在Spring
中,对导致RuntimeException
的请求的默认响应为5xx
,在这种情况下,这不是一个好选择,但这只是一个示例。如果您对在
Exceptions
中处理Spring
感兴趣,只需进行澄清。