Показать или скрыть HTML в зависимости от значения - PullRequest
0 голосов
/ 12 июня 2018

У меня есть проект Spring MVC, который использует Thymeleaf для привязки данных переднего плана.Я хотел бы показать сообщение об успехе при обновлении имени пользователя.Вот экран обновления: пример .На данный момент пользователь перенаправлен на страницу входа, но я хотел бы показать сообщение, когда имя обновляется, и подождать 5 секунд, прежде чем он будет перенаправлен.Могу ли я передать логическое значение в методе get страницы и установить его в true при вызове метода post?

 @RequestMapping(value = "/resetUserName", method = RequestMethod.GET)
 public ModelAndView displayResetUsernamePage(ModelAndView modelAndView, @ModelAttribute User user) {
    logger.info("Entered displayResetUsernamePage function");
    return modelAndView;
 }

  @RequestMapping(value = "/resetUserName", method = RequestMethod.POST)
public ModelAndView setNewUsername(ModelAndView modelAndView, @ModelAttribute User user, HttpServletRequest httpServletRequest, @AuthenticationPrincipal User currentUser) throws ServletException {
    logger.info("Entered setNewUsername function");
    User exists = userService.findUserByUserName(user.getUsername());
    if (exists == null) {
        User updatedUser = userService.updateUsername(currentUser.getUsername(), user);           

        logger.info("Username change successful: " + currentUser.getUsername() + " is now " + user.getUsername());

        emailService.sendEmailResetUsername(user, currentUser);

    } else {
        throw new ResourceNotFoundException();
    }        

    modelAndView.setViewName("login");
    httpServletRequest.logout();
    return modelAndView;
}

Вот методы get и post, могу ли я передать логическое значение в метод get и установитьэто правда в методе пост?А затем покажите это в Thymeleaf с th: если $ {resetSuccess} показать html?

что-то вроде этого:

<div th:if="${resetSuccess}">
    Username change successfull !
</div>

1 Ответ

0 голосов
/ 12 июня 2018

Вы хотите обновить информацию о пользователях и ждать 5 секунд и перенаправить на страницу входа.

Это пример кода для вас:

  1. возможно, пользователи переместят вашу страницу метода получения.
  2. используется для вызова метода post в ajax.
  3. используется для обновления информации о пользователе в вашем методе post.
  4. ответ с использованием в ajax и показать ваше сообщение об успехе и подождать 5 секунд и перенаправить вашу страницу входа в систему.

изменить метод сообщения

@RequestMapping(value = "/reset/account/{idx}", method = RequestMethod.POST)
public @ResponseBody String resetAccount(@PathVariable long idx, @RequestBody User user) {

    // select user by idx.

    // update old user by new user. 

    // need to handle return string message.
    return "success";
}

AJAX

// you need user idx.
var userIdx = 32;

// make user JSON.
var user = {
    "name" : "username"
}

user = JSON.stringify(user);


$.ajax({
        url : "/reset/account" + userIdx,
        type : 'POST',
        data : user,
        contentType : 'application/json',
        dataType : 'text',
        success : function(response) {

            // updated user information.
            if ("success" == response) {

                // show success message box.

                setTimeout(function() {
                    location.href = "/your/login/page";
                }, 5000);

            } else {
                // handling false or fail.
            }
        },

        error : function(request, status, error) {

        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...