Package org.apache.myfaces.view.facelets
Class FaceletViewDeclarationLanguage
- java.lang.Object
-
- jakarta.faces.view.ViewDeclarationLanguage
-
- org.apache.myfaces.view.ViewDeclarationLanguageBase
-
- org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguageBase
-
- org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage
-
public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLanguageBase
This class represents the abstraction of Facelets as a ViewDeclarationLanguage.- Since:
- 2.0
- Version:
- $Revision$ $Date$
- Author:
- Simon Lessard (latest modification by $Author$)
-
-
Field Summary
Fields Modifier and Type Field Description static String
BUILDING_VIEW_METADATA
static String
CACHED_COMPONENT_IDS
Key used to cache component ids for the counterstatic String
CLEAN_TRANSIENT_BUILD_ON_RESTORE
static String
DEFAULT_CHARACTER_ENCODING
static long
DEFAULT_REFRESH_PERIOD
static long
DEFAULT_REFRESH_PERIOD_PRODUCTION
static String
DYN_WRAPPER
static String
GEN_MARK_ID
static String
IS_BUILDING_INITIAL_STATE_KEY_ALIAS
static String
MARK_INITIAL_STATE_KEY
Marker to indicate tag handlers the view currently being built is using partial state saving and it is necessary to call UIComponent.markInitialState after component instances are populated.static String
PARAM_ENCODING
Constant used by EncodingHandler to indicate the current encoding of the page being built, and indicate which one is the response encoding on getResponseEncoding(FacesContext, String) method.static String
REFRESH_TRANSIENT_BUILD_ON_PSS
static String
REFRESHING_TRANSIENT_BUILD
static String
REMOVING_COMPONENTS_BUILD
static String
USING_PSS_ON_THIS_VIEW
-
Fields inherited from class jakarta.faces.view.ViewDeclarationLanguage
FACELETS_VIEW_DECLARATION_LANGUAGE_ID
-
-
Constructor Summary
Constructors Constructor Description FaceletViewDeclarationLanguage(FacesContext context)
FaceletViewDeclarationLanguage(FacesContext context, ViewDeclarationLanguageStrategy strategy)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
buildView(FacesContext context, UIViewRoot view)
List<String>
calculateResourceLibraryContracts(FacesContext context, String viewId)
protected String
calculateViewId(FacesContext context, String viewId)
Calculates the effective view identifier for the specified raw view identifier.static void
cleanTransientBuildOnRestore(FacesContext context)
protected Compiler
createCompiler(FacesContext context)
Creates the Facelet page compiler.UIComponent
createComponent(FacesContext context, String taglibURI, String tagName, Map<String,Object> attributes)
protected FaceletFactory
createFaceletFactory(FacesContext context, Compiler compiler)
Creates a FaceletFactory instance using the specified compiler.protected ResponseWriter
createResponseWriter(FacesContext context)
UIViewRoot
createView(FacesContext context, String viewId)
Process the specification required algorithm that is generic to all PDL.BeanInfo
getComponentMetadata(FacesContext context, Resource componentResource)
retargetMethodExpressions(FacesContext, UIComponent) has some clues about the behavior of this methodFaceletFactory
getFaceletFactory()
String
getId()
protected String
getResponseContentType(FacesContext context, String orig)
Generate the content typeprotected String
getResponseEncoding(FacesContext context, String orig)
Generate the encodingResource
getScriptComponentResource(FacesContext context, Resource componentResource)
StateManagementStrategy
getStateManagementStrategy(FacesContext context, String viewId)
ViewMetadata
getViewMetadata(FacesContext context, String viewId)
Stream<String>
getViews(FacesContext facesContext, String path, int maxDepth, ViewVisitOption... options)
protected void
handleFaceletNotFound(FacesContext context, String viewId)
protected void
handleRenderException(FacesContext context, Exception e)
static boolean
isBuildingViewMetadata(FacesContext context)
Check if the current facelet applied is used to build view metadata.static boolean
isCleanTransientBuildOnRestore(FacesContext context)
static boolean
isMarkInitialState(FacesContext context)
static boolean
isRefreshingTransientBuild(FacesContext context)
static boolean
isRefreshTransientBuildOnPSS(FacesContext context)
static boolean
isRefreshTransientBuildOnPSSAuto(FacesContext context)
static boolean
isRemovingComponentBuild(FacesContext context)
static boolean
isUsingPSSOnThisView(FacesContext context)
protected void
loadDecorators(FacesContext context, Compiler compiler)
Load the various decorators for Facelets.protected void
loadLibraries(FacesContext context, Compiler compiler)
Load the various tag libraries for Facelets.protected void
loadOptions(FacesContext context, Compiler compiler)
Load the various options for Facelets compiler.void
renderView(FacesContext context, UIViewRoot view)
UIViewRoot
restoreView(FacesContext context, String viewId)
void
retargetAttachedObjects(FacesContext context, UIComponent topLevelComponent, List<AttachedObjectHandler> handlerList)
In short words, this method take care of "target" an "attached object".void
retargetMethodExpressions(FacesContext context, UIComponent topLevelComponent)
protected void
sendSourceNotFound(FacesContext context, String message)
Send a source not found to the client.boolean
viewExists(FacesContext context, String viewId)
-
Methods inherited from class org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguageBase
activateDynamicComponentRefreshTransientBuild, dynamicComponentNeedsRefresh, getRenderKitFactory, getVisitContextFactory, isDynamicComponentNeedsRefresh, isDynamicComponentRefreshTransientBuildActive, isDynamicComponentRefreshTransientBuildActive, resetDynamicComponentNeedsRefreshFlag
-
Methods inherited from class jakarta.faces.view.ViewDeclarationLanguage
getViews
-
-
-
-
Field Detail
-
DEFAULT_REFRESH_PERIOD
public static final long DEFAULT_REFRESH_PERIOD
- See Also:
- Constant Field Values
-
DEFAULT_REFRESH_PERIOD_PRODUCTION
public static final long DEFAULT_REFRESH_PERIOD_PRODUCTION
- See Also:
- Constant Field Values
-
DEFAULT_CHARACTER_ENCODING
public static final String DEFAULT_CHARACTER_ENCODING
- See Also:
- Constant Field Values
-
PARAM_ENCODING
public static final String PARAM_ENCODING
Constant used by EncodingHandler to indicate the current encoding of the page being built, and indicate which one is the response encoding on getResponseEncoding(FacesContext, String) method.- See Also:
- Constant Field Values
-
BUILDING_VIEW_METADATA
public static final String BUILDING_VIEW_METADATA
- See Also:
- Constant Field Values
-
REFRESHING_TRANSIENT_BUILD
public static final String REFRESHING_TRANSIENT_BUILD
- See Also:
- Constant Field Values
-
REFRESH_TRANSIENT_BUILD_ON_PSS
public static final String REFRESH_TRANSIENT_BUILD_ON_PSS
- See Also:
- Constant Field Values
-
USING_PSS_ON_THIS_VIEW
public static final String USING_PSS_ON_THIS_VIEW
- See Also:
- Constant Field Values
-
REMOVING_COMPONENTS_BUILD
public static final String REMOVING_COMPONENTS_BUILD
- See Also:
- Constant Field Values
-
DYN_WRAPPER
public static final String DYN_WRAPPER
- See Also:
- Constant Field Values
-
GEN_MARK_ID
public static final String GEN_MARK_ID
- See Also:
- Constant Field Values
-
MARK_INITIAL_STATE_KEY
public static final String MARK_INITIAL_STATE_KEY
Marker to indicate tag handlers the view currently being built is using partial state saving and it is necessary to call UIComponent.markInitialState after component instances are populated.- See Also:
- Constant Field Values
-
IS_BUILDING_INITIAL_STATE_KEY_ALIAS
public static final String IS_BUILDING_INITIAL_STATE_KEY_ALIAS
- See Also:
- Constant Field Values
-
CLEAN_TRANSIENT_BUILD_ON_RESTORE
public static final String CLEAN_TRANSIENT_BUILD_ON_RESTORE
- See Also:
- Constant Field Values
-
CACHED_COMPONENT_IDS
public static final String CACHED_COMPONENT_IDS
Key used to cache component ids for the counter- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FaceletViewDeclarationLanguage
public FaceletViewDeclarationLanguage(FacesContext context)
-
FaceletViewDeclarationLanguage
public FaceletViewDeclarationLanguage(FacesContext context, ViewDeclarationLanguageStrategy strategy)
-
-
Method Detail
-
getId
public String getId()
- Overrides:
getId
in classViewDeclarationLanguage
-
viewExists
public boolean viewExists(FacesContext context, String viewId)
- Overrides:
viewExists
in classViewDeclarationLanguage
-
buildView
public void buildView(FacesContext context, UIViewRoot view) throws IOException
- Specified by:
buildView
in classViewDeclarationLanguage
- Throws:
IOException
-
getComponentMetadata
public BeanInfo getComponentMetadata(FacesContext context, Resource componentResource)
retargetMethodExpressions(FacesContext, UIComponent) has some clues about the behavior of this method- Specified by:
getComponentMetadata
in classViewDeclarationLanguage
-
isBuildingViewMetadata
public static boolean isBuildingViewMetadata(FacesContext context)
Check if the current facelet applied is used to build view metadata.- Parameters:
context
-- Returns:
-
isRefreshingTransientBuild
public static boolean isRefreshingTransientBuild(FacesContext context)
-
isRemovingComponentBuild
public static boolean isRemovingComponentBuild(FacesContext context)
-
isMarkInitialState
public static boolean isMarkInitialState(FacesContext context)
-
isRefreshTransientBuildOnPSS
public static boolean isRefreshTransientBuildOnPSS(FacesContext context)
-
isRefreshTransientBuildOnPSSAuto
public static boolean isRefreshTransientBuildOnPSSAuto(FacesContext context)
-
isCleanTransientBuildOnRestore
public static boolean isCleanTransientBuildOnRestore(FacesContext context)
-
cleanTransientBuildOnRestore
public static void cleanTransientBuildOnRestore(FacesContext context)
-
isUsingPSSOnThisView
public static boolean isUsingPSSOnThisView(FacesContext context)
-
retargetAttachedObjects
public void retargetAttachedObjects(FacesContext context, UIComponent topLevelComponent, List<AttachedObjectHandler> handlerList)
In short words, this method take care of "target" an "attached object".- The "attached object" is instantiated by a tag handler.
- The "target" is an object used as "marker", that exposes a List<UIComponent>
- Overrides:
retargetAttachedObjects
in classViewDeclarationLanguage
-
retargetMethodExpressions
public void retargetMethodExpressions(FacesContext context, UIComponent topLevelComponent)
- Overrides:
retargetMethodExpressions
in classViewDeclarationLanguage
-
getScriptComponentResource
public Resource getScriptComponentResource(FacesContext context, Resource componentResource)
- Specified by:
getScriptComponentResource
in classViewDeclarationLanguage
-
getStateManagementStrategy
public StateManagementStrategy getStateManagementStrategy(FacesContext context, String viewId)
- Specified by:
getStateManagementStrategy
in classViewDeclarationLanguage
-
getViewMetadata
public ViewMetadata getViewMetadata(FacesContext context, String viewId)
- Specified by:
getViewMetadata
in classViewDeclarationLanguage
-
renderView
public void renderView(FacesContext context, UIViewRoot view) throws IOException
- Specified by:
renderView
in classViewDeclarationLanguage
- Throws:
IOException
-
createView
public UIViewRoot createView(FacesContext context, String viewId)
Process the specification required algorithm that is generic to all PDL.- Overrides:
createView
in classViewDeclarationLanguageBase
-
restoreView
public UIViewRoot restoreView(FacesContext context, String viewId)
- Overrides:
restoreView
in classViewDeclarationLanguageBase
-
calculateViewId
protected String calculateViewId(FacesContext context, String viewId)
Calculates the effective view identifier for the specified raw view identifier.- Specified by:
calculateViewId
in classViewDeclarationLanguageBase
- Parameters:
context
- le current FacesContextviewId
- the raw view identifier- Returns:
- the effective view identifier
-
createCompiler
protected Compiler createCompiler(FacesContext context)
Creates the Facelet page compiler.- Parameters:
context
- the current FacesContext- Returns:
- the application's Facelet page compiler
-
createFaceletFactory
protected FaceletFactory createFaceletFactory(FacesContext context, Compiler compiler)
Creates a FaceletFactory instance using the specified compiler.- Parameters:
context
- the current FacesContextcompiler
- the compiler to be used by the factory- Returns:
- the factory used by this VDL to load pages
-
createResponseWriter
protected ResponseWriter createResponseWriter(FacesContext context) throws IOException, FacesException
- Throws:
IOException
FacesException
-
getResponseContentType
protected String getResponseContentType(FacesContext context, String orig)
Generate the content type- Parameters:
context
-orig
-- Returns:
-
getResponseEncoding
protected String getResponseEncoding(FacesContext context, String orig)
Generate the encoding- Parameters:
context
-orig
-- Returns:
-
handleFaceletNotFound
protected void handleFaceletNotFound(FacesContext context, String viewId) throws FacesException, IOException
- Throws:
FacesException
IOException
-
handleRenderException
protected void handleRenderException(FacesContext context, Exception e) throws IOException, jakarta.el.ELException, FacesException
- Throws:
IOException
jakarta.el.ELException
FacesException
-
loadDecorators
protected void loadDecorators(FacesContext context, Compiler compiler)
Load the various decorators for Facelets.- Parameters:
context
- the current FacesContextcompiler
- the page compiler
-
loadLibraries
protected void loadLibraries(FacesContext context, Compiler compiler)
Load the various tag libraries for Facelets.- Parameters:
context
- the current FacesContextcompiler
- the page compiler
-
loadOptions
protected void loadOptions(FacesContext context, Compiler compiler)
Load the various options for Facelets compiler. Currently only comment skipping is supported.- Parameters:
context
- the current FacesContextcompiler
- the page compiler
-
sendSourceNotFound
protected void sendSourceNotFound(FacesContext context, String message)
Send a source not found to the client. Although it can be considered ok in JSP mode, I think it's pretty lame to have this kind of requirement at VDL level considering VDL represents the page --> Faces tree link, not the transport layer required to send a SC_NOT_FOUND.- Specified by:
sendSourceNotFound
in classViewDeclarationLanguageBase
- Parameters:
context
- le current FacesContextmessage
- the message associated with the error
-
calculateResourceLibraryContracts
public List<String> calculateResourceLibraryContracts(FacesContext context, String viewId)
- Overrides:
calculateResourceLibraryContracts
in classViewDeclarationLanguage
-
getFaceletFactory
public FaceletFactory getFaceletFactory()
-
createComponent
public UIComponent createComponent(FacesContext context, String taglibURI, String tagName, Map<String,Object> attributes)
- Overrides:
createComponent
in classViewDeclarationLanguage
-
getViews
public Stream<String> getViews(FacesContext facesContext, String path, int maxDepth, ViewVisitOption... options)
- Overrides:
getViews
in classViewDeclarationLanguage
-
-