gpt4 book ai didi

java - 获取同一 Controller 中不同方法的@RequestMapping值

转载 作者:行者123 更新时间:2023-12-05 04:11:26 25 4
gpt4 key购买 nike

使用 Spring Boot,我的 RegisterController 中有几个方法可以处理新用户注册。

createNewUser 方法负责将新用户保存到数据库并发送一封确认电子邮件,其中包含一个具有唯一 token 的链接。

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) {

}

最佳答案

我不知道有什么方法可以从 @RequestMapping 值中获取它,但您有几个不同的选择。

选项 1:为映射创建常量并使用允许您在两种方法中引用它的常量。

private final static String REGISTER_CONF_VAL = "/registerConfirmation";

@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=REGISTER_CONF_VAL, method = RequestMethod.GET)
public ModelAndView confirmUser( @RequestParam("token") String token) {

}

选项 2:不太理想,但如果您将 registerConfirmation 添加到您的配置文件中,您可以像这样访问它:

@RequestMapping(value="${register.conf.val}", method = RequestMethod.GET)
public ModelAndView confirmUser( @RequestParam("token") String token) {

}

这不是理想的原因是因为您可能不希望它因环境而异。也就是说,它会起作用。

关于java - 获取同一 Controller 中不同方法的@RequestMapping值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com