首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据值显示或隐藏HTML

根据值显示或隐藏HTML
EN

Stack Overflow用户
提问于 2018-06-12 16:44:56
回答 1查看 600关注 0票数 0

我有一个Spring MVC项目,它使用Thymeleaf进行前端数据绑定。我想在更新用户名时显示一条成功的消息。这是更新屏幕:example。目前,用户被重定向到登录页面,但我希望在名称更新时显示一条消息,并在重定向之前等待5秒。是否可以在页面的get方法中传递布尔值,并在调用post方法时将其设置为true?

代码语言:javascript
复制
 @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方法并在post方法中将其设置为true吗?然后在Thymeleaf中使用th:if${resetSuccess}来显示html?

如下所示:

代码语言:javascript
复制
<div th:if="${resetSuccess}">
    Username change successfull !
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 17:08:24

您希望更新用户信息并等待5秒,然后重定向到登录页面。

这是为您提供的示例代码:

  1. 也许用户移动了你的get方法页面。
  2. 用来在ajax中调用你的post方法。
  3. 用来更新你的post方法中的用户信息。在ajax中使用
  4. 响应,并显示成功消息,等待5秒,然后重定向您的登录页面。

编辑post方法

代码语言:javascript
复制
@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

代码语言:javascript
复制
// 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) {

        }
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50812886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档