将参数从GET传递到POST

时间:2017-11-05 13:07:15

标签: spring post get thymeleaf

我正在使用Spring实现简单的Web应用程序,并且我试图实现重置密码机制。我决定这样做: 用户获得一个类似于site/reset_password?t=token的电子邮件收件箱的链接,然后当他去那里(使用GET)时,他会看到他写新密码的表单。可悲的是,当用户想要提交新密码(使用POST)时,我遇到了一些问题。在POST方法中,我需要从他的链接中获取标记

@RequestMapping(value = "/reset_password", method = RequestMethod.GET)
public String resetPassowrd(@RequestParam("t") String token, Model model) {
    try {
        ResetPasswordForm form = new ResetPasswordForm();
        form.setResetPasswordToken(token);
        model.addAttribute("resetPasswordForm", form);
        model.addAttribute("tokenStatus",TokenStatus.OK);
    } catch (WrongTokenException ex) {
        model.addAttribute("tokenStatus",TokenStatus.WRONG);
    }
    return "token/reset_password.html";
}

我试图在表单对象中传递它(相同的对象用户填写他的密码),但在POST方法中,此字段设置为null。

@RequestMapping(value = "/reset_password", method = RequestMethod.POST)
public String resetPassowrd(@ModelAttribute @Validated ResetPasswordForm resetPasswordForm, BindingResult bindingResult, Model model) {
    if (bindingResult.hasErrors()) {
        return "token/reset_password.html";
    }
    userCompanyService.changePassword(resetPasswordForm);
    return "token/reset_password_success.html";
}

在发现带有令牌的字段为空之后,我尝试将另一个参数添加到此方法@RequestParam(value = "t",required = false) String token,遗憾的是它没有按照从GET到POST的请求传递。 我应该如何使它工作?我认为我将Thymeleaf和Spring一起使用的事实值得一提。

1 个答案:

答案 0 :(得分:0)

添加$ids = array(1,434,23); $query = "SELECT name, address FROM tContacts WHERE id IN('".join("','",$ids)."')"; $stmt = $DB->Prepare($query); 解决了这个问题。使用Spring将令牌参数传递给POST方法。