com.opensymphony.module.sitemesh.mapper
public class: PageDecoratorMapper [javadoc |
source]
java.lang.Object
com.opensymphony.module.sitemesh.mapper.AbstractDecoratorMapper
com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper
All Implemented Interfaces:
DecoratorMapper
The PageDecoratorMapper allows the actual Page to determine the Decorator to be
used.
The 'meta.decorator' and 'decorator' properties of the page are accessed
and if any of them contain the name of a valid Decorator, that Decorator shall
be applied.
As an example, if HTML is being used, the Decorator could be chosen by using
a <html decorator="mydecorator"> root tag or by using a
<meta name="decorator" content="mydecorator"> tag in the header.
The actual properties to query are specified by passing properties to the mapper using the
property.? prefix. As the properties are stored in a Map, each key has to be unique.
Example: property.1=decorator, property.2=meta.decorator .
| Method from com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper Summary: |
|---|
|
getDecorator, init |
| Method from com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper Detail: |
public Decorator getDecorator(HttpServletRequest request,
Page page) {
Decorator result = null;
Iterator i = pageProps.iterator();
while (i.hasNext()) {
String propName = (String)i.next();
result = getByProperty(request, page, propName);
if (result != null) break;
}
return result == null ? super.getDecorator(request, page) : result;
}
|
public void init(Config config,
Properties properties,
DecoratorMapper parent) throws InstantiationException {
super.init(config, properties, parent);
pageProps = new ArrayList();
Iterator i = properties.entrySet().iterator();
while (i.hasNext()) {
Map.Entry entry = (Map.Entry) i.next();
String key = (String) entry.getKey();
if (key.startsWith("property")) {
pageProps.add(entry.getValue());
}
}
}
|