| Home > FAQs > Can we access an Action's Result | 
Yes, you can access the ResultConfig objects before the Action executes, and you can access the final Result object using a PreResultListener.
If you need to work with the set of ResultConfigs before the Action executes, you can use an Interceptor to process the Map returned by getResults.
public class MyInterceptor implements Interceptor {
  // ...
  public String intercept(ActionInvocation invocation) throws Exception {
    Map resultsMap = invocation.getProxy().getConfig().getResults();
      // do something with ResultConfig in map
    return invocation.invoke();
  }
  // ...
}
If you are writing against Java 5, you could use a generic when obtain the map.
Map<String, ResultConfig> resultsMap = invocation.getProxy().getConfig().getResults();
If you need to work with the final Result object before it is executed, you can use an Interceptor to register a PreResultListener. The code example creates a PreResultListener as an anonymous inner class.
public class MyInterceptor implements Interceptor {
  // ...
  public String intercept(ActionInvocation invocation) throws Exception {
    invocation.addPreResultListener(new PreResultListener() {
      public void beforeResult(ActionInvocation invocation, String resultCode) {
        Map resultsMap = invocation.getProxy().getConfig().getResults();
        ResultConfig finalResultConfig = resultsMap.get(resultCode);
          // do something interesting with the 'to-be' executed result
        }
      });
    return invocation.invoke();
  }
  // ...
}
If you are writing against Java 5, you could use a generic when obtain the map.
Map<String, ResultConfig> resultsMap = invocation.getProxy().getConfig().getResults();