/** * Return the method of this action. * * <p>You can getMethod.getAnnotations() to get annotation on action method to do more things */ public Method getMethod() { return action.getMethod(); /* try { return controller.getClass().getMethod(action.getMethod().getName()); } catch (Exception e) { throw new RuntimeException(e); }*/ }
/** Invoke the action. */ public void invoke() { if (index < inters.length) inters[index++].intercept(this); else if (index++ == inters.length) // index++ ensure invoke action only one time // try {action.getMethod().invoke(controller, NULL_ARGS);} catch (Exception e) {throw new // RuntimeException(e);} try { action.getMethod().invoke(controller, NULL_ARGS); } catch (InvocationTargetException e) { Throwable cause = e.getTargetException(); if (cause instanceof RuntimeException) throw (RuntimeException) cause; throw new RuntimeException(e); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } }