Chapter 12: Path of Pilgrimage - Walk from page to page
setResponsePage
Use setResponsePage() for event-driven navigation in handlers such as link clicks and form submit success paths.
BookmarkablePageLink
BookmarkablePageLink creates stable URLs that users can share and revisit directly.
PageParameters
Use PageParameters for route context: IDs, filters, and read-only hints. Validate parameters before use.
Flow Design
Design navigation as explicit user journeys: entry, action, feedback, and return path. Clear flow prevents accidental dead ends.
Practical Pitfalls
-
ProblemAfter login, users do not return to the page they originally requested.CauseOriginal destination is not preserved and flow always redirects to a fixed page.SolutionImplement post-auth return-to-original-destination flow.
-
ProblemShared URLs fail to reproduce expected state.CauseNavigation is over-optimized for hidden state and loses bookmarkable reproducibility.SolutionBalance privacy and reproducibility; keep public flows bookmarkable where possible.
-
ProblemBack button or duplicated tabs trigger PageExpired/Stale exceptions.CauseUsers interact with outdated render-count state.SolutionProvide clear recovery guidance and reduce multi-action conflicts on update-heavy pages.
-
ProblemParallel tab usage increases random update failures.CauseSame page instance state is manipulated concurrently from multiple tabs.SolutionDesign update screens with multi-tab behavior in mind and add operation constraints when needed.
-
ProblemUsers are confused by unexpected stale-state failures.CauseEven non-standard actions (like source view paths) can create state divergence in some flows.SolutionUse explicit error text that tells users to reload and continue safely.
-
ProblemRoot-cause analysis for stale exceptions takes too long.CauseTeams inspect logs only and skip user-operation scenario replay.SolutionStart diagnosis with reproducible scenarios: back, duplicate tab, and double-submit paths.