Class ActionConfigMatcher

java.lang.Object
org.apache.struts.config.ActionConfigMatcher
All Implemented Interfaces:
Serializable

public class ActionConfigMatcher extends Object implements Serializable

Matches paths against pre-compiled wildcard expressions pulled from action configs. It uses the wildcard matcher from the Apache Cocoon project. Patterns will be matched in the order they exist in the Struts config file. The last match wins, so more specific patterns should be defined after less specific patterns.

Since:
Struts 1.2
See Also:
  • Constructor Details

    • ActionConfigMatcher

      public ActionConfigMatcher(ActionConfig[] configs)

      Finds and precompiles the wildcard patterns from the ActionConfig "path" attributes. ActionConfig's will be evaluated in the order they exist in the Struts config file. Only paths that actually contain a wildcard will be compiled.

      Parameters:
      configs - An array of ActionConfig's to process
  • Method Details

    • match

      public ActionConfig match(String path)

      Matches the path against the compiled wildcard patterns.

      Parameters:
      path - The portion of the request URI for selecting a config.
      Returns:
      The action config if matched, else null
    • convertActionConfig

      protected ActionConfig convertActionConfig(String path, ActionConfig orig, Map<String,String> vars)

      Clones the ActionConfig and its children, replacing various properties with the values of the wildcard-matched strings.

      Parameters:
      path - The requested path
      orig - The original ActionConfig
      vars - A Map of wildcard-matched strings
      Returns:
      A cloned ActionConfig with appropriate properties replaced with wildcard-matched values
      Throws:
      IllegalStateException - if a placeholder substitution is impossible due to recursion
    • replaceProperties

      protected void replaceProperties(Properties orig, Properties props, Map<String,String> vars)

      Replaces placeholders from one Properties values set to another.

      Parameters:
      orig - The original properties set with placehold values
      props - The target properties to store the processed values
      vars - A Map of wildcard-matched strings
      Throws:
      IllegalStateException - if a placeholder substitution is impossible due to recursion
    • convertParam

      protected String convertParam(String val, Map<String,String> vars)

      Inserts into a value wildcard-matched strings where specified.

      Parameters:
      val - The value to convert
      vars - A Map of wildcard-matched strings
      Returns:
      The new value
      Throws:
      IllegalStateException - if a placeholder substitution is impossible due to recursion