首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

SpringSide 3.1.4 實戰(中):Struts 2 Convention 插件與 CRUD 一體化 Action 開發

     編輯:Java 相關知識

Convention 插件約定優於配置

SpringSide 3.1.4 棄用 CodeBehind,改用 Struts 2 Convention 插件。核心規則:

  • 掃描包含 web 關鍵字的包(struts.convention.package.locators=web)
  • Action 類命名以 Action 結尾,方法映射為 actionName!methodName.action
  • 視圖文件置於 WEB-INF/content/,直接返回邏輯名(如 SUCCESS → article.jsp)

故 Action 包名為 personal.youxia.web。

ArticleAction CRUD 一體化設計

繼承 CrudActionSupport<Article>(實現 ModelDriven、Preparable),默認 execute() 調用 list()。

1. 列表頁

@Autowired private ArticleManager articleManager;
private Page<Article> page = new Page<Article>(10);

public Page<Article> getPage() { return page; }

@Override
public String list() {
    page = articleManager.getAll(page);
    return SUCCESS; // → WEB-INF/content/article.jsp
}

article.jsp 遍歷 page.result:

<s:iterator value="page.result">
  <tr><td>${subject}</td><td><a href="article!delete.action?id=${id}">刪除</a></td></tr>
  <tr><td>${content}</td></tr>
</s:iterator>

2. 刪除與 RELOAD 模式

private Long id;
@Override
public String delete() {
    articleManager.delete(id);
    return RELOAD; // 基類常量,觸發 redirect
}
@Results({ @Result(name = CrudActionSupport.RELOAD, location = "article.action", type = "redirect") })

3. 新增/修改統一流程

準備模型:

private Article article;
@Override
protected void prepareModel() {
    if (id != null) article = articleManager.get(id); // 修改:回顯數據
    else article = new Article();                     // 新增:空對象
}
public Article getModel() { return article; }

輸入頁 article!input.action → input() 返回 INPUT → article-input.jsp 表單提交到 article!save.action。

保存:

@Override
public String save() {
    articleManager.save(article); // ModelDriven 已自動注入表單數據
    return RELOAD;
}

關鍵機制解析

  • ModelDriven 攔截器:將請求參數直接綁定到 getModel() 返回的實體對象
  • Preparable 攔截器:在 save/input 前調用 prepareModel() 保證模型非空
  • RELOAD 重定向:避免表單重複提交,刷新列表顯示最新狀態
  • CRUD 一體化:單 Action + 兩 JSP 完成增刪改查,減少樣板代碼

下一步預告

第八步:Spring Security 整合保護 Action;第九步:多分據源遷移。完整掌握數據流向(請求→Action→Model→Manager→DAO→DB→Model→JSP)是避免暈頭轉向的關鍵。

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