mirror of
https://github.com/apache/struts.git
synced 2026-08-31 19:35:40 +00:00
WW-3699 - from now, buildValidatorKey includes the package name
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1199696 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
+8
-1
@@ -19,12 +19,14 @@ package com.opensymphony.xwork2.validator;
|
||||
import com.opensymphony.xwork2.ActionContext;
|
||||
import com.opensymphony.xwork2.ActionInvocation;
|
||||
import com.opensymphony.xwork2.ActionProxy;
|
||||
import com.opensymphony.xwork2.config.entities.ActionConfig;
|
||||
import com.opensymphony.xwork2.inject.Inject;
|
||||
import com.opensymphony.xwork2.util.FileManager;
|
||||
import com.opensymphony.xwork2.util.ValueStack;
|
||||
import com.opensymphony.xwork2.util.logging.Logger;
|
||||
import com.opensymphony.xwork2.util.logging.LoggerFactory;
|
||||
import com.opensymphony.xwork2.validator.validators.VisitorFieldValidator;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -217,13 +219,18 @@ public class AnnotationActionValidatorManager implements ActionValidatorManager
|
||||
protected static String buildValidatorKey(Class clazz) {
|
||||
ActionInvocation invocation = ActionContext.getContext().getActionInvocation();
|
||||
ActionProxy proxy = invocation.getProxy();
|
||||
ActionConfig config = proxy.getConfig();
|
||||
|
||||
//the key needs to use the name of the action from the config file,
|
||||
//instead of the url, so wild card actions will have the same validator
|
||||
//see WW-2996
|
||||
StringBuilder sb = new StringBuilder(clazz.getName());
|
||||
sb.append("/");
|
||||
sb.append(proxy.getConfig().getName());
|
||||
if (StringUtils.isNotBlank(config.getPackageName())) {
|
||||
sb.append(config.getPackageName());
|
||||
sb.append("/");
|
||||
}
|
||||
sb.append(config.getName());
|
||||
sb.append("|");
|
||||
sb.append(proxy.getMethod());
|
||||
return sb.toString();
|
||||
|
||||
+3
-3
@@ -23,10 +23,10 @@ import com.opensymphony.xwork2.test.SimpleAnnotationAction2;
|
||||
import com.opensymphony.xwork2.test.SimpleAnnotationAction3;
|
||||
import com.opensymphony.xwork2.util.FileManager;
|
||||
import com.opensymphony.xwork2.validator.validators.*;
|
||||
import org.easymock.EasyMock;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.easymock.EasyMock;
|
||||
|
||||
|
||||
/**
|
||||
@@ -47,7 +47,7 @@ public class AnnotationActionValidatorManagerTest extends XWorkTestCase {
|
||||
super.setUp();
|
||||
annotationActionValidatorManager = (AnnotationActionValidatorManager) container.getInstance(ActionValidatorManager.class);
|
||||
|
||||
ActionConfig config = new ActionConfig.Builder("", "name", "").build();
|
||||
ActionConfig config = new ActionConfig.Builder("packageName", "name", "").build();
|
||||
ActionInvocation invocation = EasyMock.createNiceMock(ActionInvocation.class);
|
||||
ActionProxy proxy = EasyMock.createNiceMock(ActionProxy.class);
|
||||
|
||||
@@ -71,7 +71,7 @@ public class AnnotationActionValidatorManagerTest extends XWorkTestCase {
|
||||
|
||||
public void testBuildValidatorKey() {
|
||||
String validatorKey = AnnotationActionValidatorManager.buildValidatorKey(SimpleAnnotationAction.class);
|
||||
assertEquals(SimpleAnnotationAction.class.getName() + "/name|execute", validatorKey);
|
||||
assertEquals(SimpleAnnotationAction.class.getName() + "/packageName/name|execute", validatorKey);
|
||||
}
|
||||
|
||||
public void testBuildsValidatorsForAlias() {
|
||||
|
||||
Reference in New Issue
Block a user