Struts2 教程中 Action 類常省略 username/password 的 getter/setter,初學者不知如何補全。
private String username;
private String password;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
// 1. 引入依賴 (Maven)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
// 2. 實體類
@Data // 包含 @Getter @Setter @ToString @EqualsAndHashCode @RequiredArgsConstructor
public class LoginAction {
private String username;
private String password;
// 無需手寫任何 getter/setter,編譯期自動注入
}
@Builder、@Slf4j、@NonNull 等豐富擴展@RequiredArgsConstructor + final 欄位// JSP
// Action (ModelDriven 或 直接屬性驅動)
public class LoginAction extends ActionSupport implements ModelDriven {
private User user = new User();
public User getModel() => user;
public String execute() {
// user.getUsername() 已自動封裝
return SUCCESS;
}
}
教程省略的是標準 JavaBean getter/setter。**現代開發請直接引入 Lombok**,一行 @Data 替換幾十行樣板代碼,並確保 IDE 插件正確配置。
