Skip to content
Snippets Groups Projects
Commit 2809e372 authored by Yibo Zhu's avatar Yibo Zhu
Browse files

develope

parent f14a4762
No related branches found
No related tags found
3 merge requests!48Resolve issue 70,!47Revert "Merge branch '26-as-a-user-i-want-to-see-the-rankings-of-each-member' into 'main'",!33Resolve "As a user, I want to view and edit my personal information on my profile page so that I can manage and update my details"
package uk.ac.cf.spring.demo.sports.Userdetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@RestController
@Controller
public class UserController {
// 依赖注入 UserService
private final UserService userService;
// 使用 @Autowired 进行依赖注入(构造函数注入)
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
// 显示所有用户列表
@GetMapping("/users")
public ModelAndView getUsers() {
ModelAndView modelAndView = new ModelAndView("user/allUserList");
List<User> users = userService.getAllUsers();
modelAndView.addObject("users", users);
return modelAndView;
// 获取所有用户列表
@GetMapping
public List<User> getAllUsers() {
return userService.getAllUsers();
}
// 通过用户 ID 查看用户详情
@GetMapping("/users/{id}")
public ModelAndView getUserById(@PathVariable Long id) {
ModelAndView modelAndView = new ModelAndView("user/userDetails");
User user = userService.getUserById(id);
modelAndView.addObject("user", user);
return modelAndView;
// 通过用户 ID 获取用户详情
@GetMapping("/api/users/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
// 显示添加用户的表单
@GetMapping("/users/add")
public ModelAndView addUser() {
ModelAndView modelAndView = new ModelAndView("user/userForm");
Userform emptyUserform = new Userform();
modelAndView.addObject("user", emptyUserform);
return modelAndView;
// 添加用户
@PostMapping
public void addUser(@RequestBody User user) {
userService.addUser(user);
}
// 显示编辑用户信息的表单
@GetMapping("/users/edit/{id}")
public ModelAndView editUser(@PathVariable("id") Long id) {
ModelAndView modelAndView = new ModelAndView("user/userForm");
// 获取需要编辑的用户
User userToEdit = userService.getUserById(id);
// 创建表单对象
Userform userform = new Userform(
userToEdit.getId(),
userToEdit.getEmail(),
userToEdit.getUsername()
);
modelAndView.addObject("user", userform);
return modelAndView;
// 更新用户信息
// @PutMapping("/{id}")
// public void updateUser(@PathVariable Long id, @RequestBody User user) {
// user.setId(id); // 确保更新的对象有正确的 ID
// userService.updateUser(user);
// }
// 删除用户
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userService.deleteUser(id);
}
}
\ No newline at end of file
......@@ -18,4 +18,6 @@ public interface UserService {
// 添加用户
void addUser(User user);
void deleteUser(Long id);
}
\ No newline at end of file
......@@ -34,4 +34,9 @@ public class UserServiceImpl implements UserService{
public void addUser(User user) {
}
@Override
public void deleteUser(Long id) {
}
}
// userTable.js
// 动态加载用户数据
async function loadUsers() {
async function loadUsers(id) {
try {
const response = await fetch('/api/users'); // 确保后端提供了此 API
const response = await fetch('/api/users/${id}'); // 确保后端提供了此 API
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
......@@ -28,10 +28,9 @@ async function loadUsers() {
`;
tbody.appendChild(row);
});
} catch (error) {
}
catch (error) {
console.error('Error loading users:', error);
const tbody = document.querySelector('tbody');
tbody.innerHTML = `<tr><td colspan="4">Failed to load user data.</td></tr>`;
}
}
......
......@@ -3,8 +3,10 @@
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../css/UserCenter.css">
</head>
<body>
<table>
<thead>
<tr>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment