Class AgentDecoratorMapper
- All Implemented Interfaces:
DecoratorMapper
This can be useful for supplying different versions of the same content for different browsers (e.g. vanilla HTML for Lynx, complex tables and frames for Netscape, extra stuff for IE5, etc).
This can also be used to enhance search-engine ratings by using a 'bait and switch' system - this involves showing a search-engine friendly of the content to spiders only.
When AgentDecoratorMapper is in the chain, it will request the appropriate Decorator from its parent. It will then
add an extention to the filename of the Decorator, and if that file exists it shall be used as the Decorator instead.
For example, if the Decorator path is /blah.jsp and the detected user-agent is ie, the path
/blah-ie.jsp shall be used.
The agent mappings are configured by passing properties with match. as a prefix. For example:
'match.MSIE'=ie , 'match.Lynx'=plain .
- Author:
- Joe Walnes
- See Also:
-
Field Summary
Fields inherited from class com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
config, parent -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetDecorator(javax.servlet.http.HttpServletRequest request, Page page) Return appropriateDecoratorfor a certain Page.voidinit(Config config, Properties properties, DecoratorMapper parent) Initialize the mapper.Methods inherited from class com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
getNamedDecorator
-
Constructor Details
-
AgentDecoratorMapper
public AgentDecoratorMapper()
-
-
Method Details
-
init
public void init(Config config, Properties properties, DecoratorMapper parent) throws InstantiationException Description copied from interface:DecoratorMapperInitialize the mapper. This is always called before the other methods.- Specified by:
initin interfaceDecoratorMapper- Overrides:
initin classAbstractDecoratorMapper- Parameters:
config- Config supplied by Servlet or Filter.properties- Any initialization properties (specific to implementation).parent- the parent- Throws:
InstantiationException- the instantiation exception
-
getDecorator
Description copied from interface:DecoratorMapperReturn appropriateDecoratorfor a certain Page.The implementation can determine the result based on the actual request or the data of the parsed page. Typically this would call
getNamedDecorator()which would delegate to a parent DecoratorMapper.- Specified by:
getDecoratorin interfaceDecoratorMapper- Overrides:
getDecoratorin classAbstractDecoratorMapper- Parameters:
request- the requestpage- the page- Returns:
- the decorator
-