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

MVC 模式下重置按鈕實現:跳轉至初始 Action 還原頁面狀態

     編輯:程式設計疑難解答

問題描述

在 MVC 架構(如 Struts 2 / Spring MVC)中,用戶點擊「重置」按鈕時,需要將當前頁面的所有表單字段、查詢條件、分頁狀態等完全恢復至初次加載時的初始狀態。

核心思路:重定向到初始 Action

最簡潔、徹底的做法是不在前端手動清空表單,而是讓重置按鈕發起一次GET 請求跳轉到對應的初始化 Action/Controller 方法。

實現方式

<!-- JSP/Thymeleaf 示例 -->
<a href="${pageContext.request.contextPath}/user/list" class="btn btn-secondary">重置</a>
<!-- 或 -->
<button onclick="location.href='${ctx}/user/list'">重置</button>

後端 Controller 示例

@GetMapping("/user/list")
public String list(Model model) {
    // 1. 清空 Session/Flash 中可能殘留的查詢條件
    // 2. 重新查詢默認數據(第一頁、無過濾)
    model.addAttribute("users", userService.findAll(PageRequest.of(0, 10)));
    // 3. 返回同一視圖模板
    return "user/list";
}

優勢

  • 零殘留:服務端重新執行初始化邏輯,確保 Model、Session、頁面狀態完全一致。
  • 無需前端 JS 維護:避免表單字段增減導致重置邏輯失效。
  • 符合 REST 風格:重置本質是「獲取資源初始視圖」,GET 請求語義正確。

注意事項

  • 若頁面包含大量數據,重置會觸發完整請求,可考慮結合瀏覽器緩存或 AJAX 局部刷新優化體驗。
  • 若必須在不跳轉情況下重置(如單頁應用),前端需維護初始狀態快照(JSON),重置時 Object.assign(form, initialSnapshot) 並手動觸發驗證/渲染更新。

總之,「跳轉到初始 Action」是服務端 MVC 中最標準、最省心的重置實現。

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