feat(interactive): enhance struts learning pages with task cards and quick experiments

This commit is contained in:
likingcode
2026-03-09 23:57:50 +08:00
commit 0bbfdd1d7a
14 changed files with 941 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
package com.example.struts2;
import com.opensymphony.xwork2.ActionSupport;
import java.util.ArrayList;
import java.util.List;
/**
* 用户管理 Action - CRUD 示例
*
* 学习点:
* - Session 范围数据
* - 多个处理方法
* - 动态方法调用
*/
public class UserFormAction extends ActionSupport {
private static List<User> users = new ArrayList<>();
private static Long idCounter = 1L;
private User user = new User();
private Long id;
private List<User> userList;
static {
users.add(new User(idCounter++, "张三", "zhangsan@example.com", 25));
users.add(new User(idCounter++, "李四", "lisi@example.com", 30));
users.add(new User(idCounter++, "王五", "wangwu@example.com", 28));
}
// 列表
public String list() {
userList = new ArrayList<>(users);
return SUCCESS;
}
// 添加
public String add() {
user.setId(idCounter++);
users.add(user);
return SUCCESS;
}
// 编辑页面
public String edit() {
for (User u : users) {
if (u.getId().equals(id)) {
user = u;
break;
}
}
return SUCCESS;
}
// 更新
public String update() {
for (int i = 0; i < users.size(); i++) {
if (users.get(i).getId().equals(user.getId())) {
users.set(i, user);
break;
}
}
return SUCCESS;
}
// 删除
public String delete() {
users.removeIf(u -> u.getId().equals(id));
return SUCCESS;
}
// Getters and Setters
public User getUser() { return user; }
public void setUser(User user) { this.user = user; }
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public List<User> getUserList() { return userList; }
public void setUserList(List<User> userList) { this.userList = userList; }
// 内部类 - 用户实体
public static class User {
private Long id;
private String name;
private String email;
private Integer age;
public User() {}
public User(Long id, String name, String email, Integer age) {
this.id = id;
this.name = name;
this.email = email;
this.age = age;
}
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
}
}