~~ $Id$
~~
~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements. See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership. The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied. See the License for the
~~ specific language governing permissions and limitations
~~ under the License.
~~
-----------
Wildcard support
-----------
Wildcard support
By default, Tiles 2.2 supports wildcards in definition names. Wilcards help a
lot in writing less code to declare your definitions.
There are two styles:
* the wildcard-based style (available by default):
------------------------------------
------------------------------------
* {Using different pattern matching languages}
In Tiles 2.2 it is possible to use different pattern matching languages
at the same time. Tiles supports Wildcard and Regular Expressions natively.
To configure it, override the
{{{../../apidocs/org/apache/tiles/factory/BasicTilesContainerFactory.html#createPatternDefinitionResolver(java.lang.Class)}createPatternDefinitionResolver}}
method of <<>> this way:
-------------------------------------
@Override
protected PatternDefinitionResolver createPatternDefinitionResolver(
Class customizationKeyClass) {
DefinitionPatternMatcherFactory wildcardFactory = new WildcardDefinitionPatternMatcherFactory();
DefinitionPatternMatcherFactory regexpFactory = new RegexpDefinitionPatternMatcherFactory();
PrefixedPatternDefinitionResolver resolver = new PrefixedPatternDefinitionResolver();
resolver.registerDefinitionPatternMatcherFactory("WILDCARD", wildcardFactory);
resolver.registerDefinitionPatternMatcherFactory("REGEXP", regexpFactory);
return resolver;
}
-------------------------------------
Now you can still use Wildcard notation, but remember to add the <<>> prefix:
------------------------------------
------------------------------------
And, if you want to use Regular Expressions:
------------------------------------
------------------------------------
In both cases, if you insert a definition that matches the definition, for example:
------------------------------------
------------------------------------
The definition is automatically mapped, replacing placeholders, marked by
curly brackets, with the value of matched definitions. In this case:
------------------------------------
------------------------------------