我只想在蔬菜名称不是胡萝卜,豆类或洋葱的情况下访问该方法,因此如果我给番茄,它应该返回视图。我正在使用以下网址,该网址有问题吗?

@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感兴趣,只需进行澄清。

10-02 05:09