Author: musachy Date: Fri Sep 25 18:52:26 2009 New Revision: 818953 URL: http://svn.apache.org/viewvc?rev=818953&view=rev Log: WW-3263 Convention does not check for "struts.enable.SlashesInActionNames"
Modified: struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java Modified: struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java?rev=818953&r1=818952&r2=818953&view=diff ============================================================================== --- struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java (original) +++ struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java Fri Sep 25 18:52:26 2009 @@ -101,6 +101,7 @@ private Set<String> fileProtocols; private boolean alwaysMapExecute; private boolean excludeParentClassLoader; + private boolean slashesInActionNames; private static final String DEFAULT_METHOD = "execute"; @@ -150,6 +151,12 @@ public void setReload(String reload) { this.reload = "true".equals(reload); } + + + @Inject(StrutsConstants.STRUTS_ENABLE_SLASHES_IN_ACTION_NAMES) + public void setSlashesInActionNames(String slashesInActionNames) { + this.slashesInActionNames = "true".equals(slashesInActionNames); + } /** * Exclude URLs found by the parent class loader. Defaults to "true", set to true for JBoss @@ -578,7 +585,7 @@ List<Action> actions = map.get(method); for (Action action : actions) { PackageConfig.Builder pkgCfg = defaultPackageConfig; - if (action.value().contains("/")) { + if (action.value().contains("/") && !slashesInActionNames) { pkgCfg = getPackageConfig(packageConfigs, namespace, actionPackage, actionClass, action); } @@ -780,7 +787,7 @@ if (annotation != null) { actionName = annotation.value() != null && annotation.value().equals(Action.DEFAULT_VALUE) ? actionName : annotation.value(); - actionName = StringUtils.contains(actionName, "/") ? StringUtils.substringAfterLast(actionName, "/") : actionName; + actionName = StringUtils.contains(actionName, "/") && !slashesInActionNames ? StringUtils.substringAfterLast(actionName, "/") : actionName; } ActionConfig.Builder actionConfig = new ActionConfig.Builder(pkgCfg.getName(),