Class MustacheViewRenderer
java.lang.Object
org.apache.juneau.rest.server.view.mustache.MustacheViewRenderer
- All Implemented Interfaces:
ResponseProcessor,ViewRenderer
ResponseProcessor that detects MustacheView-typed return values and asks the
configured MustacheFactory to render them directly onto the response writer.
Auto-registered by MustacheMixin via
@Rest(responseProcessors=...)
— callers who add the mixin don't need to wire up this class explicitly. Callers who want
to handle MustacheView returns without adopting the mixin can add this class to
their own
responseProcessors list.
Behavior:
- Inspect the response content. If the value is not a
MustacheView, returnNEXTso the rest of the chain runs. - Read the active
MustacheMixinfrom theRestContextbean store to discover theMustacheFactory(lazy default if no factory bean is registered) and the optional template-suffix knob. - Apply every entry from
MustacheView.getResponseHeaders()viares.setHeader(...). - Default
Content-Typetotext/html;charset=UTF-8if the caller did not set one explicitly (Mustache is content-neutral, but HTML is overwhelmingly the most common output target; an explicit caller header wins). - Call
factory.compile(templateName).execute(res.getWriter(), view.getAttributes())to stream the rendered output. - When no Mustache engine is on the classpath, the
MustacheFactory-typed import here fails to load at first use and surfacesNO_ENGINE_DIAGNOSTICnaming the missing dependency.
See Also:
- Since:
- 10.0.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringDefaultContent-Typeapplied when the view does not specify one explicitly.static final StringDiagnostic message emitted when no Mustache engine can be found on the classpath at render-time.Fields inherited from interface org.apache.juneau.rest.server.processor.ResponseProcessor
FINISHED, NEXT, RESTART -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintprocess(RestOpSession opSession) Process this response if possible.
-
Field Details
-
DEFAULT_CONTENT_TYPE
DefaultContent-Typeapplied when the view does not specify one explicitly.- See Also:
-
NO_ENGINE_DIAGNOSTIC
Diagnostic message emitted when no Mustache engine can be found on the classpath at render-time.Public so tests and consumer apps can pattern-match against the message text without depending on internal string literals.
- See Also:
-
-
Constructor Details
-
MustacheViewRenderer
public MustacheViewRenderer()
-
-
Method Details
-
process
Description copied from interface:ResponseProcessorProcess this response if possible.- Specified by:
processin interfaceResponseProcessor- Parameters:
opSession- The HTTP call.- Returns:
- One of the following codes:
0 - The processor could not handle the request.1 - The processor was able to fully handle the request.2 - The processor was able to partially handle the request by replacing the output. The response processors should start over.
- Throws:
IOException- If low-level exception occurred on output stream.
Results in aHttpServletResponse.SC_INTERNAL_SERVER_ERRORerror.BasicHttpException- If some other exception occurred.
Can be used to provide an appropriate HTTP response code and message.
-