Class LanguageDecoratorMapper
- java.lang.Object
-
- com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
-
- com.opensymphony.module.sitemesh.mapper.LanguageDecoratorMapper
-
- All Implemented Interfaces:
DecoratorMapper
public class LanguageDecoratorMapper extends AbstractDecoratorMapper
The LanguageDecoratorMapper can determine the preferred language set in the browser requesting a page, and map to a suitable Decorator (using the "Accept-Language" HTTP header).This can be useful for supplying different versions of the same content for different languages.
When LanguageDecoratorMapper 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.jspand the detected preferred language isen, the path/blah-en.jspshall be used.The language mappings are configured by passing properties with
match.as a prefix. For example: 'match.en'=engl , 'match.nl'=dutch .- Author:
- Mathias Bogaert
- See Also:
DecoratorMapper
-
-
Field Summary
Fields Modifier and Type Field Description private Mapmap-
Fields inherited from class com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
config, parent
-
-
Constructor Summary
Constructors Constructor Description LanguageDecoratorMapper()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DecoratorgetDecorator(javax.servlet.http.HttpServletRequest request, Page page)Delegate to parent.private StringgetExt(String acceptLanguage)Get extention for the language.voidinit(Config config, Properties properties, DecoratorMapper parent)Set parent.private voidinitMap(Properties props)Initialize language mappings.private static StringmodifyPath(String path, String ext)Change /abc/def.jsp into /abc/def-XYZ.jsp-
Methods inherited from class com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
getNamedDecorator
-
-
-
-
Field Detail
-
map
private Map map
-
-
Method Detail
-
init
public void init(Config config, Properties properties, DecoratorMapper parent) throws InstantiationException
Description copied from class:AbstractDecoratorMapperSet parent.- Specified by:
initin interfaceDecoratorMapper- Overrides:
initin classAbstractDecoratorMapper- Parameters:
config- Config supplied by Servlet or Filter.properties- Any initialization properties (specific to implementation).- Throws:
InstantiationException- should be thrown if the implementation cannot be initialized properly.
-
getDecorator
public Decorator getDecorator(javax.servlet.http.HttpServletRequest request, Page page)
Description copied from class:AbstractDecoratorMapperDelegate to parent.- Specified by:
getDecoratorin interfaceDecoratorMapper- Overrides:
getDecoratorin classAbstractDecoratorMapper
-
modifyPath
private static String modifyPath(String path, String ext)
Change /abc/def.jsp into /abc/def-XYZ.jsp
-
initMap
private void initMap(Properties props)
Initialize language mappings.
-
-