Unknown Handlers
Unknown Handler stacks are available from Struts 2.1 on.
Unknown Handlers
Unknown Handlers are classes that implement the com.opensymphony.xwork2.UnknownHandler
interface, and are called
by the framework, when an unknown action, result, or method are executed. To define an unknown handler, create a class
implementing the mentioned interface, and add a bean definition to your struts.xml:
<bean type="com.opensymphony.xwork2.UnknownHandler" name="handler" class="myclasses.SomeUnknownHandler"/>
Stacking Unknown Handlers
Multiple unknown handlers can be defined, using the unknown-handler-stack tag:
<bean type="com.opensymphony.xwork2.UnknownHandler" name="handler1" class="com.opensymphony.xwork2.config.providers.SomeUnknownHandler"/>
<bean type="com.opensymphony.xwork2.UnknownHandler" name="handler2" class="com.opensymphony.xwork2.config.providers.SomeUnknownHandler"/>
<unknown-handler-stack>
<unknown-handler-ref name="handler1" />
<unknown-handler-ref name="handler2" />
</unknown-handler-stack>
When multiple unknown handlers are stacked like above, they will be called in the specified order, in the same cases when a single unknown handler would be called (when an unknown action, result, or method are executed), until one of them handles the requested action.
Unknown Handlers Manager
The default class that handles unknown handler stacks is com.opensymphony.xwork2.DefaultUnknownHandlerManager
,
a custom implementation of this class can be provided by implementing the interface com.opensymphony.xwork2.UnknownHandlerManager
and setting the property struts.unknownHandlerManager
.