基于jQuery与Spring MVC实现用户密码异步修改的实战演示
// 前端jQuery代码
$(document).ready(function() {
$('#changePasswordForm').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/user/changePassword',
data: $(this).serialize(),
success: function(data) {
if (data.status === 'success') {
alert('密码修改成功!');
$('#currentPassword').val('');
$('#newPassword').val('');
$('#confirmNewPassword').val('');
} else {
alert('密码修改失败:' + data.message);
}
},
error: function() {
alert('发生未知错误,密码修改失败。');
}
});
});
});
// Spring MVC Controller部分
@Controller
@RequestMapping("/user")
public class UserController {
@PostMapping("/changePassword")
@ResponseBody
public Map<String, String> changePassword(
@RequestParam("currentPassword") String currentPassword,
@RequestParam("newPassword") String newPassword,
@RequestParam("confirmNewPassword") String confirmNewPassword,
Principal principal) {
Map<String, String> response = new HashMap<>();
if (!newPassword.equals(confirmNewPassword)) {
response.put("status", "error");
response.put("message", "新密码与确认密码不一致。");
} else if (currentPassword.equals(newPassword)) {
response.put("status", "error");
response.put("message", "新密码不能与旧密码相同。");
} else {
// 假设有一个UserService用于密码修改
boolean isPasswordChanged = userService.changePassword(principal.getName(), newPassword);
if (isPasswordChanged) {
response.put("status", "success");
} else {
response.put("status", "error");
response.put("message", "密码修改失败,请确认旧密码正确。");
}
}
return response;
}
}
这段代码展示了如何使用jQuery和Spring MVC来实现一个简单的密码修改功能。前端使用jQuery捕获表单提交事件,并通过AJAX异步向后端发送POST请求,后端接收请求,验证数据,并根据结果返回JSON格式的响应。
评论已关闭