Fork me on GitHub
<< back to Core Developers Guide Edit on GitHub

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.