Home » sitemesh-2.4.1 » com.opensymphony.module » sitemesh » mapper » [javadoc | source]
com.opensymphony.module.sitemesh.mapper
public final class: AgentDecoratorMapper [javadoc | source]
java.lang.Object
   com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
      com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper

All Implemented Interfaces:
    DecoratorMapper

The AgentDecoratorMapper can determine the user-agent (i.e. web-browser) requesting a page, and map to a suitable Decorator.

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 .

Fields inherited from com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper:
parent,  config
Method from com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper Summary:
getDecorator,   init
Methods from com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper:
getDecorator,   getNamedDecorator,   init
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper Detail:
 public Decorator getDecorator(HttpServletRequest request,
    Page page) 
 public  void init(Config config,
    Properties properties,
    DecoratorMapper parent) throws InstantiationException