public class InvalidRequests implements UnknownHandler { @Override public ActionConfig handleUnknownAction(String namespace, String actionName) throws XWorkException { ConfigurationManager configurationManager = Dispatcher.getInstance().getConfigurationManager(); RuntimeConfiguration runtimeConfiguration = configurationManager.getConfiguration().getRuntimeConfiguration(); ActionConfig actionConfig = runtimeConfiguration.getActionConfig(namespace, actionName); if(actionConfig == null) { // invalid url request, and this need to be handled actionConfig = runtimeConfiguration.getActionConfig("", "pageNotFound"); } return actionConfig; } // ... also you need to implements handleUnknownResult, handleUnknownActionMethod }
LOG.trace("Checking if there is an action named index in the namespace {}", redirectNamespace); actionConfig = configuration.getRuntimeConfiguration().getActionConfig(redirectNamespace, "index"); if (actionConfig != null) { LOG.trace("Found action config"); actionConfig = configuration.getRuntimeConfiguration().getActionConfig(namespace, "index");
protected void prepare() { String profileKey = "create DefaultActionProxy: "; try { UtilTimerStack.push(profileKey); config = configuration.getRuntimeConfiguration().getActionConfig(namespace, actionName); if (config == null && unknownHandlerManager.hasUnknownHandlers()) { config = unknownHandlerManager.handleUnknownAction(namespace, actionName); } if (config == null) { throw new ConfigurationException(getErrorMessage()); } resolveMethod(); if (!config.isAllowedMethod(method)) { throw new ConfigurationException("Invalid method: " + method + " for action " + actionName); } invocation.init(this); } finally { UtilTimerStack.pop(profileKey); } }