类 ParameterMethodNameResolver
- java.lang.Object
- org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver
- 所有已实现的接口:
MethodNameResolver
@Deprecated public class ParameterMethodNameResolver extends Object implements MethodNameResolver
已过时。as of 4.3, in favor of annotation-driven handler methodsImplementation ofMethodNameResolver
which supports several strategies for mapping parameter values to the names of methods to invoke.The simplest strategy looks for a specific named parameter, whose value is considered the name of the method to invoke. The name of the parameter may be specified as a JavaBean property, if the default
action
is not acceptable.The alternative strategy uses the very existence of a request parameter ( i.e. a request parameter with a certain name is found) as an indication that a method with the same name should be dispatched to. In this case, the actual request parameter value is ignored. The list of parameter/method names may be set via the
methodParamNames
JavaBean property.The second resolution strategy is primarily expected to be used with web pages containing multiple submit buttons. The 'name' attribute of each button should be set to the mapped method name, while the 'value' attribute is normally displayed as the button label by the browser, and will be ignored by the resolver.
Note that the second strategy also supports the use of submit buttons of type 'image'. That is, an image submit button named 'reset' will normally be submitted by the browser as two request parameters called 'reset.x', and 'reset.y'. When checking for the existence of a parameter from the
methodParamNames
list, to indicate that a specific method should be called, the code will look for a request parameter in the "reset" form (exactly as specified in the list), and in the "reset.x" form ('.x' appended to the name in the list). In this way it can handle both normal and image submit buttons. The actual method name resolved, if there is a match, will always be the bare form without the ".x".Note: If both strategies are configured, i.e. both "paramName" and "methodParamNames" are specified, then both will be checked for any given request. A match for an explicit request parameter in the "methodParamNames" list always wins over a value specified for a "paramName" action parameter.
For use with either strategy, the name of a default handler method to use when there is no match, can be specified as a JavaBean property.
For both resolution strategies, the method name is of course coming from some sort of view code, (such as a JSP page). While this may be acceptable, it is sometimes desirable to treat this only as a 'logical' method name, with a further mapping to a 'real' method name. As such, an optional 'logical' mapping may be specified for this purpose.
- 作者:
- Rod Johnson, Juergen Hoeller, Colin Sampaleanu
- 另请参阅:
setParamName(java.lang.String)
,setMethodParamNames(java.lang.String...)
,setLogicalMappings(java.util.Properties)
,setDefaultMethodName(java.lang.String)
字段概要
字段 修饰符和类型 字段 说明 static String
DEFAULT_PARAM_NAME
已过时。Default name for the parameter whose value identifies the method to invoke: "action".protected Log
logger
已过时。
构造器概要
构造器 构造器 说明 ParameterMethodNameResolver()
已过时。
方法概要
所有方法 实例方法 具体方法 已过时的方法 修饰符和类型 方法 说明 String
getHandlerMethodName(HttpServletRequest request)
已过时。Return a method name that can handle this request.void
setDefaultMethodName(String defaultMethodName)
已过时。Set the name of the default handler method that should be used when no parameter was found in the requestvoid
setLogicalMappings(Properties logicalMappings)
已过时。Specifies a set of optional logical method name mappings.void
setMethodParamNames(String... methodParamNames)
已过时。Set a String array of parameter names, where the very existence of a parameter in the list (with value ignored) means that a method of the same name should be invoked.void
setParamName(String paramName)
已过时。Set the name of the parameter whose value identifies the name of the method to invoke.
字段详细资料
DEFAULT_PARAM_NAME
public static final String DEFAULT_PARAM_NAME
已过时。Default name for the parameter whose value identifies the method to invoke: "action".- 另请参阅:
- 常量字段值
构造器详细资料
ParameterMethodNameResolver
public ParameterMethodNameResolver()
已过时。
方法详细资料
setParamName
public void setParamName(String paramName)
已过时。Set the name of the parameter whose value identifies the name of the method to invoke. Default is "action".Alternatively, specify parameter names where the very existence of each parameter means that a method of the same name should be invoked, via the "methodParamNames" property.
setMethodParamNames
public void setMethodParamNames(String... methodParamNames)
已过时。Set a String array of parameter names, where the very existence of a parameter in the list (with value ignored) means that a method of the same name should be invoked. This target method name may then be optionally further mapped via thelogicalMappings
property, in which case it can be considered a logical name only.
setLogicalMappings
public void setLogicalMappings(Properties logicalMappings)
已过时。Specifies a set of optional logical method name mappings. For both resolution strategies, the method name initially comes in from the view layer. If that needs to be treated as a 'logical' method name, and mapped to a 'real' method name, then a name/value pair for that purpose should be added to this Properties instance. Any method name not found in this mapping will be considered to already be the real method name.Note that in the case of no match, where the
defaultMethodName
property is used if available, that method name is considered to already be the real method name, and is not run through the logical mapping.- 参数:
logicalMappings
- a Properties object mapping logical method names to real method names
setDefaultMethodName
public void setDefaultMethodName(String defaultMethodName)
已过时。Set the name of the default handler method that should be used when no parameter was found in the request
getHandlerMethodName
public String getHandlerMethodName(HttpServletRequest request) throws NoSuchRequestHandlingMethodException
已过时。从接口复制的说明:MethodNameResolver
Return a method name that can handle this request. Such mappings are typically, but not necessarily, based on URL.- 指定者:
getHandlerMethodName
在接口中MethodNameResolver
- 参数:
request
- current HTTP request- 返回:
- a method name that can handle this request. Never returns
null
; throws exception if not resolvable. - 抛出:
NoSuchRequestHandlingMethodException
- if no handler method can be found for the given request