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

ActionEventListener

An ActionEventListener can be used to add some logic when action’s instance is created or when exception occurred during processing the action.

Configuration

Right now there can be only one instance of ActionEventListener for the whole Struts2 application. You can configure it via struts.xml by adding bean definition:

<bean type="com.opensymphony.xwork2.ActionEventListener" class="com.demo.MyActionEventListener"/>

Examples

public class MyActionEventListener implements ActionEventListener {

    public Object prepare(Object action, ValueStack stack) {
        if (action instanceof MyBaseAction) {
            ((MyBaseAction)action).setUserService(stack.findValue("userService"));
        }
    }
    
    public String handleException(Throwable t, ValueStack stack) {
        if (t instanceof MyBusinessException) {
            return stack.findString("defaultBusinesResult");
        }
        return null;
    }
}