public class ConventionUnknownHandler extends Object implements UnknownHandler
This class is the default unknown handler for all of the Convention plugin integration with XWork. This handles instances when a URL doesn't have an action associated with it but does a viable result and also the instance where an action returns a result code that isn't already configured but there is a viable result for the code.
This class also handles all of the index actions using redirects and actions in nested packages. For example, if there is an action /foo/index and the URL /foo is used, this will render the index action in the /foo namespace.
Modifier and Type | Class and Description |
---|---|
static class |
ConventionUnknownHandler.Resource |
Modifier and Type | Field and Description |
---|---|
protected Set<String> |
allowedMethods |
protected Configuration |
configuration |
protected String |
defaultParentPackageName |
protected ObjectFactory |
objectFactory |
protected PackageConfig |
parentPackage |
protected ResultMapBuilder |
resultMapBuilder |
protected javax.servlet.ServletContext |
servletContext |
Constructor and Description |
---|
ConventionUnknownHandler(Configuration configuration,
ObjectFactory objectFactory,
javax.servlet.ServletContext servletContext,
Container container,
String defaultParentPackageName,
String redirectToSlash,
String nameSeparator)
Constructs the unknown handler.
|
Modifier and Type | Method and Description |
---|---|
protected ActionConfig |
buildActionConfig(String path,
ResultTypeConfig resultTypeConfig) |
protected Result |
buildResult(String path,
String resultCode,
ResultTypeConfig config,
ActionContext invocationContext) |
protected String |
canonicalize(String path) |
protected String |
determinePath(ActionConfig actionConfig,
String namespace)
Determines the result path prefix that the request URL is for, minus the action name.
|
protected ConventionUnknownHandler.Resource |
findResource(Map<String,ResultTypeConfig> resultsByExtension,
String... parts)
Finds a resource using the given path parts and all of the extensions in the map.
|
protected Result |
findResult(String path,
String resultCode,
String ext,
ActionContext actionContext,
Map<String,ResultTypeConfig> resultsByExtension) |
ActionConfig |
handleUnknownAction(String namespace,
String actionName) |
Object |
handleUnknownActionMethod(Object action,
String methodName)
Not used
|
Result |
handleUnknownResult(ActionContext actionContext,
String actionName,
ActionConfig actionConfig,
String resultCode) |
protected String |
string(String... parts) |
protected Configuration configuration
protected ObjectFactory objectFactory
protected javax.servlet.ServletContext servletContext
protected ResultMapBuilder resultMapBuilder
protected String defaultParentPackageName
protected PackageConfig parentPackage
public ConventionUnknownHandler(Configuration configuration, ObjectFactory objectFactory, javax.servlet.ServletContext servletContext, Container container, String defaultParentPackageName, String redirectToSlash, String nameSeparator)
configuration
- The XWork configuration.objectFactory
- The XWork object factory used to create result instances.servletContext
- The servlet context used to help build the action configurations.container
- The Xwork containerdefaultParentPackageName
- The default XWork package that the unknown handler will use as
the parent package for new actions and results.redirectToSlash
- A boolean parameter that controls whether or not this will handle
unknown actions in the same manner as Apache, Tomcat and other web servers. This
handling will send back a redirect for URLs such as /foo to /foo/ if there doesn't
exist an action that responds to /foo.nameSeparator
- The character used as word separator in the action names. "-" by defaultpublic ActionConfig handleUnknownAction(String namespace, String actionName) throws StrutsException
handleUnknownAction
in interface UnknownHandler
StrutsException
protected ConventionUnknownHandler.Resource findResource(Map<String,ResultTypeConfig> resultsByExtension, String... parts)
resultsByExtension
- Map of extension to result type config objects.parts
- The parts of the resource.protected ActionConfig buildActionConfig(String path, ResultTypeConfig resultTypeConfig)
public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws StrutsException
handleUnknownResult
in interface UnknownHandler
StrutsException
protected Result findResult(String path, String resultCode, String ext, ActionContext actionContext, Map<String,ResultTypeConfig> resultsByExtension)
protected Result buildResult(String path, String resultCode, ResultTypeConfig config, ActionContext invocationContext)
protected String determinePath(ActionConfig actionConfig, String namespace)
actionConfig
- (Optional) The might be a ConventionActionConfig, from which we can get the
default base result location of that specific action.namespace
- The current URL namespace.public Object handleUnknownActionMethod(Object action, String methodName)
handleUnknownActionMethod
in interface UnknownHandler
Copyright © 2000–2020 Apache Software Foundation. All rights reserved.