【发布时间】:2020-03-31 15:21:29
【问题描述】:
我正在使用 Spring Boot 和 Thymeleaf 以恢复密码形式工作,该过程是后端使用令牌向用户发送链接,该令牌与用户信息一起保存在数据库中。用户单击链接,后端验证令牌,如果正确,它会将用户信息重定向到“新通行证”表单,用户必须在其中输入新密码并重复。当用户输入密码并按save时,它会将信息发送到后端,并使用userId搜索寄存器并更改密码。
在用户按下链接时验证令牌的控制器中,我搜索用户的信息并使用 userId 和密码构建和 usersRecoverPassDto,并组织模型对象以将其发送到“新通行证”像这样的形式:
PasswordManagmentPostDto passManagment = new PasswordManagmentPostDto();
passManagment.setUserId(userId);
model.addAttribute ("passInfo", passManagment);
在“新通行证”表格中我收到了正确的信息:
passInfo={
userId: 123456,
newPassword: null,
repeatePassword: null
}
我编码的“新通行证”表格是这样的:
<form action="#" th:action="@{/password/recovery}" th:object="${passInfo}" method="post">
<div class="mb-2 mr-sm-2 mb-sm-0 position-reNew pass:</label>
<input type="password" th:field="*{newPassword}" placeholder="Contraseña" class="form-control">
</div>
<div class="mb-2 mr-sm-2 mb-sm-0 position-relative form-group">
<label for="repeatePass" class="mr-sm-2">Repeat pass:</label>
<input type="password" th:field="*{repeatNewPassword}" placeholder="Repita contraseña" class="form-control"/>
</div>
<div class="mb-2 mr-sm-2 mb-sm-0 mt-3 position-relative form-group">
<input name="submit" type="submit" value="Save" class="inputButton btn btn-success "/>
</div>
</form>
我输入两个密码并按下按钮保存但在控制器中,我收到了下一个对象:
passInfo={
userId: null,
newPassword: password,
repeatePassword: password
}
userId 参数只是一个没有任何修改也没有显示的参数,但我不知道如何将这个值从控制器持久化到视图,然后到另一个控制器。
我在新的通行证表单中添加了另一个输入:
<input type="text" th:field="*{userId}" th:value="*{userId}" placeholder="userId" class="form-control"/>
我没有对这个输入做任何事情,只需输入两个密码并按下保存按钮就可以了,我收到了带有正确信息的对象。
当然,userId参数一定不能在表单中显示或修改。
有人可以帮帮我吗?
非常感谢您
【问题讨论】:
标签: spring-boot thymeleaf