Page Types
Built-in page controllers that define how a page behaves. Set the controller property on a page definition to use a specific page type.
- Page — The default page type. Displays a set of components and advances to the next page on submission. Omit the
controllerproperty to use this page type. - Start Page — The entry page of the form. Initialises the session and redirects to the first question. Must use the path
/start. - Terminal Page — A dead-end page that does not route the user to another page. Use this for outcomes where the journey ends without proceeding to the summary — for example, an ineligibility screen.
- Repeat Page — Allows the user to add multiple sets of answers to the same group of questions. Answers are stored as an array under the key defined by
repeat.options.name. - File Upload Page — A question page that handles file upload via the CDP file upload service. Must contain a
FileUploadFieldcomponent. - Summary Page — Displays a check-your-answers summary of all form responses before submission. Must use the path
/summary. - Status Page — The confirmation page shown after a successful form submission. Renders a GOV.UK panel with the page title and, optionally, the reference number. Automatically added to every form at
/status— only define it explicitly to customise the title.
Build your own page type
If none of the built-in page types meet your needs, you can write a custom page controller by extending QuestionPageController (for pages with form components) or PageController (for display-only pages). Custom controllers are registered via the controllers plugin option and referenced in your form definition by name.
See Custom page controllers for a full guide.