Files
Book-management-system/.trellis/spec/frontend/state-management.md
T
2026-04-27 18:40:30 +08:00

1.4 KiB

State Management

State conventions for server-rendered JSP pages.


Overview

This project does not use React/Vue state libraries or SPA stores. State should flow through the Servlet/JSP request cycle unless a future explicit decision changes the frontend architecture.


State Categories

  • Request attributes: page data, validation errors, form echoes, table rows, reports, and short result messages for a single render.
  • Session attributes: authenticated user identity, role, permission summary, and short-lived flash-style messages when redirects are used.
  • Database state: books, categories, readers, borrowing records, administrators, permissions, and logs stored in MySQL through services/DAOs.
  • Form state: submitted by browser forms to Servlets and re-rendered from validated request attributes on failure.

Rules

  • Keep business state in MySQL, not hidden fields or long-lived browser state.
  • Keep permission decisions server-side.
  • Use redirects after successful mutations such as create/update/delete, borrow, return, renew, and permission changes.
  • Do not add Redux, Pinia, client caches, or SPA routing state unless the developer explicitly introduces that stack later.

Page Scripts

Small JavaScript can improve interaction, such as confirm dialogs or local form helpers, but server-side validation and service-layer rules remain mandatory.