org.springframework.web.servlet.mvc.multiaction
Class InternalPathMethodNameResolver

java.lang.Object
  extended by org.springframework.web.servlet.mvc.multiaction.AbstractUrlMethodNameResolver
      extended by org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver
All Implemented Interfaces:
MethodNameResolver

public class InternalPathMethodNameResolver
extends AbstractUrlMethodNameResolver

Simple implementation of MethodNameResolver that maps URL to method name. Although this is the default implementation used by the MultiActionController class (because it requires no configuration), it's bit naive for most applications. In particular, we don't usually want to tie URL to implementation methods.

Maps the resource name after the last slash, ignoring an extension. E.g. "/foo/bar/baz.html" to "baz", assuming a "/foo/bar/baz.html" controller mapping to the corresponding MultiActionController handler. method. Doesn't support wildcards.

Author:
Rod Johnson, Juergen Hoeller

Field Summary
 
Fields inherited from class org.springframework.web.servlet.mvc.multiaction.AbstractUrlMethodNameResolver
logger
 
Constructor Summary
InternalPathMethodNameResolver()
           
 
Method Summary
protected  String extractHandlerMethodNameFromUrlPath(String uri)
          Extract the handler method name from the given request URI.
protected  String getHandlerMethodNameForUrlPath(String urlPath)
          Extracts the method name indicated by the URL path.
protected  String getPrefix()
          Return the common prefix for handler method names.
protected  String getSuffix()
          Return the common suffix for handler method names.
protected  String postProcessHandlerMethodName(String methodName)
          Build the full handler method name based on the given method name as indicated by the URL path.
 void setPrefix(String prefix)
          Specify a common prefix for handler method names.
 void setSuffix(String suffix)
          Specify a common suffix for handler method names.
 
Methods inherited from class org.springframework.web.servlet.mvc.multiaction.AbstractUrlMethodNameResolver
getHandlerMethodName, setAlwaysUseFullPath, setUrlDecode, setUrlPathHelper
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InternalPathMethodNameResolver

public InternalPathMethodNameResolver()
Method Detail

setPrefix

public void setPrefix(String prefix)
Specify a common prefix for handler method names. Will be prepended to the internal path found in the URL: e.g. internal path "baz", prefix "my" -> method name "mybaz".


getPrefix

protected String getPrefix()
Return the common prefix for handler method names.


setSuffix

public void setSuffix(String suffix)
Specify a common suffix for handler method names. Will be appended to the internal path found in the URL: e.g. internal path "baz", suffix "Handler" -> method name "bazHandler".


getSuffix

protected String getSuffix()
Return the common suffix for handler method names.


getHandlerMethodNameForUrlPath

protected String getHandlerMethodNameForUrlPath(String urlPath)
Extracts the method name indicated by the URL path.

Specified by:
getHandlerMethodNameForUrlPath in class AbstractUrlMethodNameResolver
Parameters:
urlPath - the URL path to use for lookup, according to the settings in this class
Returns:
a method name that can handle this request. Should return null if no matching method found.
See Also:
extractHandlerMethodNameFromUrlPath(java.lang.String), postProcessHandlerMethodName(java.lang.String)

extractHandlerMethodNameFromUrlPath

protected String extractHandlerMethodNameFromUrlPath(String uri)
Extract the handler method name from the given request URI. Delegates to WebUtils.extractViewNameFromUrlPath(String).

Parameters:
uri - the request URI (e.g. "/index.html")
Returns:
the extracted URI filename (e.g. "index")
See Also:
WebUtils.extractFilenameFromUrlPath(java.lang.String)

postProcessHandlerMethodName

protected String postProcessHandlerMethodName(String methodName)
Build the full handler method name based on the given method name as indicated by the URL path.

The default implementation simply applies prefix and suffix. This can be overridden, for example, to manipulate upper case / lower case, etc.

Parameters:
methodName - the original method name, as indicated by the URL path
Returns:
the full method name to use
See Also:
getPrefix(), getSuffix()