Class PetstoreConsolePage

java.lang.Object
jakarta.servlet.GenericServlet
jakarta.servlet.http.HttpServlet
All Implemented Interfaces:
jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, Serializable, BasicUniversalConfig, DefaultConfig, DefaultHtmlConfig
Direct Known Subclasses:
AboutRest, AuditRest, ChangesRest, ChartsRest, CustomCardsRest, DashboardRest, DataRest, DevRest, FlavorsRest, FreemarkerFlavorRest, HtmlFlavorRest, JobsRest, MustacheFlavorRest, OpsRest, OrdersRest, PetsRest, PetstoreConsoleResource, SecureApiRest, SecureRest, StoreRest, ThemesRest, UsersRest

public abstract class PetstoreConsolePage extends BasicRestServlet
Base class for every petstore console page resource: registers the console FreeMarker mixin with base.ftlh as chrome, and injects the shared PetStore.

Children don't inherit the parent's mixins, so every page class extends this one instead of re-declaring the mixin, which E-B12 would reject.

The views and DataTables toolkit packs link their assets page-relative (e.g. /console/store/juneau-views.js), so every page also composes ViewsMixin and DataTablesMixin to serve them from its own mount.

Example:

@Rest(path="/ops/audit") public class AuditRest extends PetstoreConsolePage { @RestGet(path="/") public View page() { return FreemarkerView.of("audit.ftlh"); } }

See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • builder

      public static boolean builder(RestRequest req)
      Whether this request asks for the builder twin of a page (?builder, with or without a value).
      Parameters:
      req - The request.
      Returns:
      true if the page should render from its PageSpec.
    • twin

      public static View twin(RestRequest req, PageSpec spec)
      Renders a builder-twin page, marked with PAGE_HEADER.
      Parameters:
      req - The request.
      spec - The page spec.
      Returns:
      The view.
    • freemarker

      The console FreeMarker mixin: petstore templates, base.ftlh chrome, assetUrl(..) over this package's bundled scripts, and the InventoryGaugeCardType custom card type.
      Returns:
      The mixin.
    • store

      protected PetStore store()
      Returns:
      The shared store.
      Throws:
      IllegalStateException - If no PetStore @Bean was wired into the host.