org.apache.struts2.util
Class RegexPatternMatcher

java.lang.Object
  extended by org.apache.struts2.util.RegexPatternMatcher
All Implemented Interfaces:
PatternMatcher<RegexPatternMatcherExpression>

public class RegexPatternMatcher
extends Object
implements PatternMatcher<RegexPatternMatcherExpression>

Allows regular expressions to be used in action names. The regular expressions can be in the form {FIELD_NAME} or {FIELD_NAME:REGULAR_EXPRESSION}. For example:

  <action name="/{bio:.+}/test/{name}" class="org.apache.struts2.showcase.UITagExample">
       <result>/tags/ui/example.jsp</result>
  </action>
 
For this to work it is important to set the following:
 <constant name="struts.enable.SlashesInActionNames" value="true"/>
 <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
 <constant name="struts.patternMatcher" value="regex" />
 


Field Summary
private static Pattern PATTERN
           
 
Constructor Summary
RegexPatternMatcher()
           
 
Method Summary
 RegexPatternMatcherExpression compilePattern(String data)
           Translate the given String into an object representing the pattern matchable by this class.
 boolean isLiteral(String pattern)
          Determines if the pattern is a simple literal string or contains wildcards that will need to be processed
 boolean match(Map<String,String> map, String data, RegexPatternMatcherExpression expr)
          Match a pattern against a string
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PATTERN

private static final Pattern PATTERN
Constructor Detail

RegexPatternMatcher

public RegexPatternMatcher()
Method Detail

compilePattern

public RegexPatternMatcherExpression compilePattern(String data)
Description copied from interface: PatternMatcher

Translate the given String into an object representing the pattern matchable by this class.

Specified by:
compilePattern in interface PatternMatcher<RegexPatternMatcherExpression>
Parameters:
data - The string to translate.
Returns:
The encoded string

isLiteral

public boolean isLiteral(String pattern)
Description copied from interface: PatternMatcher
Determines if the pattern is a simple literal string or contains wildcards that will need to be processed

Specified by:
isLiteral in interface PatternMatcher<RegexPatternMatcherExpression>
Parameters:
pattern - The string pattern
Returns:
True if the pattern doesn't contain processing elements, false otherwise

match

public boolean match(Map<String,String> map,
                     String data,
                     RegexPatternMatcherExpression expr)
Description copied from interface: PatternMatcher
Match a pattern against a string

Specified by:
match in interface PatternMatcher<RegexPatternMatcherExpression>
Parameters:
map - The map to store matched values
data - The string to match
expr - The compiled wildcard expression
Returns:
True if a match


Copyright © 2000-2010 Apache Software Foundation. All Rights Reserved.