public class LanguageDecoratorMapper extends AbstractDecoratorMapper
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.jsp and the detected preferred language is en,
the path /blah-en.jsp shall be used.
The language mappings are configured by passing properties with match. as a prefix.
For example: 'match.en'=engl , 'match.nl'=dutch .
DecoratorMapper| Modifier and Type | Field and Description |
|---|---|
private java.util.Map |
map |
config, parent| Constructor and Description |
|---|
LanguageDecoratorMapper() |
| Modifier and Type | Method and Description |
|---|---|
Decorator |
getDecorator(javax.servlet.http.HttpServletRequest request,
Page page)
Delegate to parent.
|
private java.lang.String |
getExt(java.lang.String acceptLanguage)
Get extention for the language.
|
void |
init(Config config,
java.util.Properties properties,
DecoratorMapper parent)
Set parent.
|
private void |
initMap(java.util.Properties props)
Initialize language mappings.
|
private static java.lang.String |
modifyPath(java.lang.String path,
java.lang.String ext)
Change /abc/def.jsp into /abc/def-XYZ.jsp
|
getNamedDecoratorpublic void init(Config config, java.util.Properties properties, DecoratorMapper parent) throws java.lang.InstantiationException
AbstractDecoratorMapperinit in interface DecoratorMapperinit in class AbstractDecoratorMapperconfig - Config supplied by Servlet or Filter.properties - Any initialization properties (specific to implementation).java.lang.InstantiationException - should be thrown if the implementation
cannot be initialized properly.public Decorator getDecorator(javax.servlet.http.HttpServletRequest request, Page page)
AbstractDecoratorMappergetDecorator in interface DecoratorMappergetDecorator in class AbstractDecoratorMapperprivate java.lang.String getExt(java.lang.String acceptLanguage)
private static java.lang.String modifyPath(java.lang.String path,
java.lang.String ext)
private void initMap(java.util.Properties props)