@getmapping方法的参数未传递

scyqe7ek  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(996)

我对springboot还不熟悉,所以我只是想弄清楚一些事情。在我观看的一个教程中,我注意到讲师做了如下操作:

@GetMapping
public String register(User user) {
    return "register";
}

有人能解释一下这是怎么回事吗。我认为用户被传递到视图“register”是对的吗?
另外,如果没有用户传递给这个方法,它只会使用一个新的用户对象。在这种情况下应该使用自动连线吗?
本例中的user类实现userdetails。
如果我说我对spring boot还不熟悉,那么我的术语就错了

lrl1mhuk

lrl1mhuk1#

一般来说,我没有遇到过很多你有 GetMapping 有这样一个“裸”(无注解)对象参数。
通常,获取方法请求的参数将用注解修饰,例如 @RequestParam 或者 @PathVariable . 既然您现在已经有了代码,我立即认为这个方法需要一个 User 对象作为 @RequestBody . 但在我看来,对尸体的要求很奇怪。
我能想到的唯一例外是,这是一种注入当前登录用户的方法。但在这种情况下,我只是通过一个 Spring 保安看到了这一点 Principal 对象。我不太确定 UserDetail 对象是这样工作的,但我可能错了。如果是这样的话,那么您就有一个“特殊用法”的例子,其中spring自动注入当前登录的用户,因为它将其识别为 UserDetail .
否则,我不知道spring应该把一个 User 如果不是来自 @RequestBody 或者别的什么。现在,我希望 User 对象始终为空。

相关问题