@RequestParam的重点是什么,如果我不使用它,它仍然有效?

时间:2018-03-15 15:39:41

标签: spring spring-mvc spring-boot

MethodHandle.invoke

@RequestMapping("/api/")
public String h(String title){
    System.out.println(title);
    return "view";
}

访问/ api?title = something时,它们都按预期工作。那么它们之间有什么区别呢?

2 个答案:

答案 0 :(得分:1)

是的,仅当requestParam发送与您的变量名称匹配时,它才有效。

尝试像这样更改

@RequestMapping("/api/")
public String h(@RequestParam String myTitle){
    System.out.println(myTitle);
    return "view";
}

看看会发生什么。 myTitle将为空。

另一方面,如果您使用@RequestParam,它仍然可以使用不同的变量名称。 试试这个。

@RequestMapping("/api/")
public String h(@RequestParam("title") String myTitle){
    System.out.println(myTitle);
    return "view";
}

另一件事是你可以设置@RequestParam(required = false),如果你想要一些参数可选。

答案 1 :(得分:0)

您可以尝试这样的代码:

@RequestMapping(value = "/api") public String h(@RequestParam(value = "title", required = false) String title) { System.out.println(title); return "view"; }