Module jakarta.mvc

Interface ViewEngine


public interface ViewEngine

View engines are responsible for processing views and are discovered using Jakarta Contexts and Dependency Injection. Implementations must look up all instances of this interface, and process a view as follows:

  1. Gather the set of candidate view engines by calling supports(String) and discarding engines that return false.
  2. Sort the resulting set of candidates using priorities. View engines can be decorated with Priority to indicate their priority; otherwise the priority is assumed to be PRIORITY_APPLICATION.
  3. If more than one candidate is available, choose one in an implementation-defined manner.
  4. Fire a BeforeProcessViewEvent event.
  5. Call method processView(ViewEngineContext) to process view.
  6. Fire a AfterProcessViewEvent event.

The default view engines for Jakarta Server Pages and Facelets use file extensions to determine support. Namely, the default Jakarta Server Pages view engine supports views with extensions jsp and jspx, and the one for Facelets supports views with extension xhtml.

Since:
1.0
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Default value for property VIEW_FOLDER.
    static final int
    Recommended priority for all application-provided view engines (default).
    static final int
    Priority for all built-in view engines.
    static final int
    Recommended priority for all view engines provided by frameworks built on top of MVC implementations.
    static final String
    Name of property that can be set to override the root location for views in an archive.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Process a view given a ViewEngineContext.
    boolean
    Returns true if this engine can process the view or false otherwise.
  • Field Details

    • VIEW_FOLDER

      static final String VIEW_FOLDER
      Name of property that can be set to override the root location for views in an archive.
      See Also:
    • DEFAULT_VIEW_FOLDER

      static final String DEFAULT_VIEW_FOLDER
      Default value for property VIEW_FOLDER.
      See Also:
    • PRIORITY_BUILTIN

      static final int PRIORITY_BUILTIN
      Priority for all built-in view engines.
      See Also:
    • PRIORITY_FRAMEWORK

      static final int PRIORITY_FRAMEWORK
      Recommended priority for all view engines provided by frameworks built on top of MVC implementations.
      See Also:
    • PRIORITY_APPLICATION

      static final int PRIORITY_APPLICATION
      Recommended priority for all application-provided view engines (default).
      See Also:
  • Method Details

    • supports

      boolean supports(String view)
      Returns true if this engine can process the view or false otherwise.
      Parameters:
      view - the view.
      Returns:
      outcome of supports test.
    • processView

      void processView(ViewEngineContext context) throws ViewEngineException

      Process a view given a ViewEngineContext. Processing a view involves merging the model and template data and writing the result to an output stream.

      Following the Jakarta EE threading model, the underlying view engine implementation must support this method being called by different threads. Any resources allocated during view processing must be released before the method returns.

      Parameters:
      context - the context needed for processing.
      Throws:
      ViewEngineException - if an error occurs during processing.