У меня есть форма для сброса пароля. После отправки он перенаправляет на страницу входа. Однако, это не показывает никакого сообщения об успешном завершении после получения успешного пароля сброса. И я не уверен, как я могу это сделать, поскольку это два разных файла jsp. И даже если на странице входа используется код сброса пароля javascript, она все равно не сможет показать условное сообщение. Я использую java пружинный ботинок , jquery и javascript. Это мой код:
resetPassword. js
$(".resetPassword").on('submit', function (e) {
e.preventDefault();
var password = $("#pass").val();
var confirmPass = $("#confirmPass").val();
if(password !== confirmPassword){
$(".perror").show();
}
else {
alert("Your password changed successfully");
$(this).unbind('submit').submit();
}
});
resetPassword. jsp
<form:form action="/reset_password" method="POST" class="resetPass" modelAttribute="resetPassword">
<div class="alert alert-danger perror" role="alert" style="display: none">Password not match</div>
<form:input type="hidden" path="token" />
<div class="form-group-row ">
<label htmlFor="passwordReset">Password</label>
<input type="password" id="pass" path="password" placeholder="Password" required/>
</div>
<div class="form-group-row ">
<label htmlFor="confirmPasswordReset">Confirm Password</label>
<input type="password" id="confirmPass" placeholder="Confirm Password" required/>
</div>
<button type="submit" class="btn btn-danger">Submit</button>
</form:form>
Теперь это логин . jsp, в котором я хочу получить успешное сообщение, которое в данный момент отображается в окне предупреждения, однако это не очень хороший дизайн.
login. jsp
<form:form action="/login" method="POST" modelAttribute="user" >
<div class="alert alert-success successfulResetPassword" role="alert" style="display: none>Your password changed successfully. Please login using your email and password</div>
<input type="text" id="email" name="email" placeholder="email" required/>
<input type="password" id="password" name="password" placeholder="pass" required/>
</form:form>
Теперь все, что я хочу, это показать div class = successResetPassword после того, как пользователь сбросит пароль, покажет, что дисплей изменил его значение для видимого. Но я не нашел хорошего способа для этого, так как сброс пароля использует другой файл js и с этой кнопки отправки я перенаправил весь сценарий на страницу входа. Даже если страница входа может получить доступ к этой странице js, она все равно не может иметь значение изменения свойства отображения:
$("#successfulResetPassword").show();
. До сих пор я пытался изменить свой код следующим образом:
resetPassword. js
else {
$("#successfulResetPassword").show(); //it could've shown the msg, but can't because it's in button submit condition after redirected to login page which has no **resetPassword** class
alert("Your password changed successfully");
$(this).unbind('submit').submit();
}
И это мой внутренний код:
@PostMapping("/reset_password")
public String resetPasswordSubmit(Map<String, Object> model, @ModelAttribute("resetPassword") ResetPasswordDTO resetPassword){
model.put("pageTitle", Constant.PAGE_TITLE);
GenericResponse response = loginService.changePassword(resetPassword);
if(response.getStatusCode() == 200){
return "redirect:/login";
}
model.put("error", "error");
return "resetPassword";
}