首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Struts2 實體類省略 getter/setter 寫法:Eclipse 自動生成與 Lombok 現代方案

     編輯:程式設計綜合問答

問題還原

Struts2 教程中 Action 類常省略 username/password 的 getter/setter,初學者不知如何補全。

傳統寫法 (手寫/IDE 生成)

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; }

Eclipse/MyEclipse 快速生成

  1. 光標置於類內部 → Alt+Shift+S → R (Generate Getters and Setters)
  2. 全選欄位 → OK

現代最佳實踐:Lombok 一行搞定

// 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,編譯期自動注入
}

Lombok 優勢

  • 消除樣板代碼,專注業務邏輯
  • 編譯期生成,運行期零性能損耗
  • 支援 @Builder、@Slf4j、@NonNull 等豐富擴展

注意事項

  • IDE 需安裝 Lombok 插件 (Eclipse 雙擊 lombok.jar 安裝,IntelliJ 裝插件並啟用 Annotation Processing)
  • Struts2 透過反射調用 setter/getter,Lombok 生成的字節碼完全相容
  • 避免在構造函數中依賴 Lombok 生成的 setter (順序不定),改用 @RequiredArgsConstructor + final 欄位

Struts2 數據封裝流程補充

// 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 插件正確配置。

Struts教程截圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved