【发布时间】:2017-03-12 03:27:26
【问题描述】:
使用 Spring Boot,我的 RegisterController 中有几个方法可以处理新用户注册。
createNewUser 方法负责将新用户保存到数据库并发送确认电子邮件,其中包含具有唯一令牌的链接。
confirmUser 方法处理确认链接的 GET 请求。
有没有办法让createNewUser 方法获得分配给confirmUser 的@RequestMapping 值?我想使用这个值来生成确认链接,而不是硬编码。
// Process form input data
@RequestMapping(value = "/register", method = RequestMethod.POST)
public ModelAndView createNewUser(@Valid User user, BindingResult bindingResult) {
}
// Process confirmation link
// Link in confirmation e-mail will be /registerConfirmation?token=UUID
@RequestMapping(value="/registerConfirmation", method = RequestMethod.GET)
public ModelAndView confirmUser( @RequestParam("token") String token) {
}
【问题讨论】:
-
为什么不将confirmUser服务与createNewUser合并,这显然会返回确认响应。
-
@PratikAmbani 因为 confirmUser() 只有在用户点击电子邮件中的确认链接时才会被调用。 createNewUser() 方法是在他们成功填写注册表时。
-
顺便说一句,更改 HTTP GET 请求的状态不是一个好习惯(我想您更新数据库中的用户信息以注意他已确认),因此更改您的 ' 将是一个更好的做法ConfirmUser 的方法是 HTTP POST。
-
@AlonSegal 好点...谢谢
标签: java spring spring-boot request-mapping