Spring 根据值显示或隐藏HTML
我有一个springmvc项目,它使用Thymeleaf进行前端数据绑定。我想在更新用户名时显示一条成功消息。以下是更新屏幕:。目前,用户被重定向到登录页面,但我想在名称更新时显示一条消息,并等待5秒钟后再重定向。我可以在页面的get方法中传递一个布尔值,并在调用post方法时将其设置为true吗Spring 根据值显示或隐藏HTML,spring,spring-mvc,thymeleaf,Spring,Spring Mvc,Thymeleaf,我有一个springmvc项目,它使用Thymeleaf进行前端数据绑定。我想在更新用户名时显示一条成功消息。以下是更新屏幕:。目前,用户被重定向到登录页面,但我想在名称更新时显示一条消息,并等待5秒钟后再重定向。我可以在页面的get方法中传递一个布尔值,并在调用post方法时将其设置为true吗 @RequestMapping(value = "/resetUserName", method = RequestMethod.GET) public ModelAndView displayR
@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
大概是这样的:
<div th:if="${resetSuccess}">
Username change successfull !
</div>
用户名更改成功!
您希望更新用户信息并等待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) {
}
});
我已经用get和post方法更新了我的原始帖子。以你为例,我必须在post方法中设置成功?在重定向到登录页面之前,我可以在哪里显示消息?@Audiosleef-updated-answer。试试这个。也许它有用