Как показать сообщение об успехе на перенаправленной странице после отправки с другой страницы, используя jquery в JSP? - PullRequest
1 голос
/ 11 апреля 2020

У меня есть форма для сброса пароля. После отправки он перенаправляет на страницу входа. Однако, это не показывает никакого сообщения об успешном завершении после получения успешного пароля сброса. И я не уверен, как я могу это сделать, поскольку это два разных файла 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";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...