ssm框架获取当前用户的id,然后根据获取的id修改用户名和密码前端改怎么写
时间: 2024-03-03 11:49:28 浏览: 151
获取当前用户的id可以使用Spring Security提供的SecurityContextHolder类,具体代码如下:
```
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String currentUserId = authentication.getName();
```
这段代码可以获取当前已经认证的用户的用户名,假设当前用户的id为userId。
前端可以使用AJAX异步请求后台修改用户名和密码,具体代码如下:
```
$.ajax({
type: "PUT",
url: "/user/" + userId,
data: {
username: newUsername,
password: newPassword
},
success: function(data) {
alert("修改成功");
},
error: function(xhr, status, error) {
alert("修改失败");
}
});
```
其中,/user/{userId}是后台提供的修改用户信息的接口,newUsername和newPassword是前端输入的新用户名和新密码。后台需要根据传入的userId、newUsername和newPassword进行修改,具体实现可以参考SSM框架的相关文档。
相关问题
ssm框架获取当前用户的id,然后根据获取的id修改用户名和密码
好的,根据您的问题,我可以给出以下代码示例:
1. 在Controller中获取当前用户的id:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/getCurrentUserId")
public Integer getCurrentUserId(HttpServletRequest request) {
HttpSession session = request.getSession();
Integer userId = (Integer) session.getAttribute("userId");
return userId;
}
// 省略其它方法
}
```
2. 在Mapper中添加根据id修改用户名和密码的方法:
```java
public interface UserMapper {
int updateUsernameAndPasswordById(@Param("id") Integer id, @Param("username") String username, @Param("password") String password);
}
```
3. 在Service中调用Mapper中的方法:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public boolean updateUsernameAndPasswordById(Integer id, String username, String password) {
int result = userMapper.updateUsernameAndPasswordById(id, username, password);
return result == 1;
}
}
```
4. 在Controller中接收前端传来的参数并调用Service中的方法:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/updateUsernameAndPassword")
public String updateUsernameAndPassword(HttpServletRequest request, String username, String password) {
Integer userId = (Integer) request.getSession().getAttribute("userId");
boolean success = userService.updateUsernameAndPasswordById(userId, username, password);
if (success) {
return "用户名和密码修改成功!";
} else {
return "用户名和密码修改失败!";
}
}
// 省略其它方法
}
```
以上就是根据获取的当前用户id修改用户名和密码的代码示例,希望能对您有所帮助。
ssm框架获取当前用户的id,然后根据获取的id修改用户名和密码前后端代码
后端代码:
```java
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{userId}")
@ResponseBody
public User getUserById(@PathVariable("userId") Integer userId) {
return userService.getUserById(userId);
}
@PutMapping("/{userId}")
@ResponseBody
public String updateUser(@PathVariable("userId") Integer userId,
@RequestParam("username") String username,
@RequestParam("password") String password) {
User user = userService.getUserById(userId);
if (user == null) {
return "用户不存在";
}
user.setUsername(username);
user.setPassword(password);
userService.updateUser(user);
return "success";
}
}
```
前端代码:
```html
<form>
<label>新用户名:</label>
<input type="text" id="username"><br>
<label>新密码:</label>
<input type="password" id="password"><br>
<button type="button" onclick="updateUser()">修改</button>
</form>
<script>
function updateUser() {
var userId = 1; // 假设当前用户的id为1
var newUsername = $("#username").val();
var newPassword = $("#password").val();
$.ajax({
type: "PUT",
url: "/user/" + userId,
data: {
username: newUsername,
password: newPassword
},
success: function(data) {
alert("修改成功");
},
error: function(xhr, status, error) {
alert("修改失败");
}
});
}
</script>
```
在上面的代码中,假设当前用户的id为1,可以根据实际情况进行修改。另外,需要注意的是,上面的代码中使用了jQuery库来简化AJAX请求的操作,如果没有使用jQuery,可以使用原生的XMLHttpRequest对象进行请求。
阅读全文