~~ $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: ------------------------------------ ------------------------------------