diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java index ca3e21689..602e4529c 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java @@ -103,14 +103,16 @@ public class ChainingInterceptor extends AbstractInterceptor { private static final Logger LOG = LoggerFactory.getLogger(ChainingInterceptor.class); private static final String ACTION_ERRORS = "actionErrors"; + private static final String FIELD_ERRORS = "fieldErrors"; private static final String ACTION_MESSAGES = "actionMessages"; private boolean copyMessages = false; private boolean copyErrors = false; + private boolean copyFieldErrors = false; protected Collection excludes; - protected Collection includes; + protected Collection includes; protected ReflectionProvider reflectionProvider; @Inject @@ -123,6 +125,11 @@ public class ChainingInterceptor extends AbstractInterceptor { this.copyErrors = "true".equalsIgnoreCase(copyErrors); } + @Inject(value = "struts.xwork.chaining.copyFieldErrors", required = false) + public void setCopyFieldErrors(String copyFieldErrors) { + this.copyErrors = "true".equalsIgnoreCase(copyFieldErrors); + } + @Inject(value = "struts.xwork.chaining.copyMessages", required = false) public void setCopyMessages(String copyMessages) { this.copyMessages = "true".equalsIgnoreCase(copyMessages); @@ -150,7 +157,7 @@ public class ChainingInterceptor extends AbstractInterceptor { private Collection prepareExcludes() { Collection localExcludes = excludes; - if (!copyErrors || !copyMessages) { + if (!copyErrors || !copyMessages ||!copyFieldErrors) { if (localExcludes == null) { localExcludes = new HashSet(); if (!copyErrors) { @@ -159,6 +166,9 @@ public class ChainingInterceptor extends AbstractInterceptor { if (!copyMessages) { localExcludes.add(ACTION_MESSAGES); } + if (!copyFieldErrors) { + localExcludes.add(FIELD_ERRORS); + } } } return localExcludes;