我现在正在学习 Spring Boot,我真的不明白为什么我们需要这个注解。在我看来,这个注解是用来重命名的。
fetch('https://reqres.in/api/users')
.then(res => res.json())
.then(data => {
if (data && data.data && Array.isArray(data.data)) {
data.data.forEach(function(user) {
console.log(user);
});
}
});
所以如果上面的代码正在运行,我可以这样传递我的名字:public String home(@RequestParam("name") String othername, HttpSession session){
session.setAttribute("name", othername);
return "home.jsp"
}
但是如果我没有注解,我只能做http://127.0.0.1:8080/home?name=bob
,为什么我们不只是改变参数的名字呢?我想我可能误解了 RequestParam 的概念。
答案 0 :(得分:3)
如果您只有少数具有默认行为的请求参数并且您可以轻松地根据需要命名它们,那么您是对的,RequestParam
注释并不是绝对必要的。但是,只要您在混合中添加 PathVariables 或请求参数,例如不再是必需的,而是可选的,您必须再次在那里添加注释。处理参数名称只是该注释的一个小方面。此外,您可能需要实现旧 API,其中 ReST API 级别的参数名称无法更改,但出于可读性、代码整洁或其他原因,您希望在代码中使用更好的名称。
答案 1 :(得分:1)
您没有误解这个概念,但您对它的了解有限。
@RequestParam(name = "package") String othername
。重命名只是@RequestParam 的一个用例,其他一些用途是:
@RequestParam(required = false)
将参数设为可选。@RequestParam(defaultValue = "test")
添加默认值。