[ 
https://issues.apache.org/struts/browse/WW-2485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dave Newton closed WW-2485.
---------------------------

    Resolution: Not A Problem

Short-circuiting is for validators on a *single* field, AFAIK: this means that 
when the first field validation fails no other validators will be run for that 
field.

See http://struts.apache.org/2.x/docs/validation.html towards the bottom and, 
for example, the RequireStringValidator annotation JavaDocs.

It's not clear to me if setting the validator type to Validator.SIMPLE (as 
opposed to the default Validator.FIELD) will cause the behavior you want, but 
I'm pretty sure you're misunderstanding short-circuiting.

I'm going to close this issue; if you have further questions please ask on the 
struts-user list as this isn't really an appropriate discussion forum. If after 
getting answers on the struts-user list you still feel there's a bug you may 
re-open this issue or create a new one.

Thanks!

> Annotation validations (@StringFieldValidator, @StringLengthFieldValidator) 
> doesn't work while @RequiredStringValidator doesn't do shortcircuiting
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-2485
>                 URL: https://issues.apache.org/struts/browse/WW-2485
>             Project: Struts 2
>          Issue Type: Bug
>          Components: XML Validators
>    Affects Versions: 2.0.11
>         Environment: Windows XP SP2, Struts 2.0.11, Jetty 6.0.1
>            Reporter: Zahid Nazir
>
> Hi,
> Validation (client or server side) doesn't occur and no message is thrown 
> back when annotating setters (I checked getter too but to no affect),see below
> //    @StringLengthFieldValidator(message="Default message", 
> key="errors.required.first", shortCircuit=true, trim=true, minLength="1", 
> maxLength="35")
> //    @RequiredFieldValidator(message = "You must enter a string value for 
> first...", key="errors.required.last", shortCircuit=true)
>       @RequiredStringValidator(message = "First", 
> key="errors.required.first", shortCircuit=true, trim=true)  
>       public void setFirst(String first) {
>               this.first = first;
>       }
> Validation does get invoked for @RequiredStringValidator but then 
> shortCircuit doesn't seem to work. 
> Here is the class declaration
> @Validation()
> public class ProfileSearch extends ActionSupport {
> // getter
> //    @StringLengthFieldValidator(message="Default message", 
> key="errors.required.last", shortCircuit=true, trim=true, minLength="1", 
> maxLength="35") 
> //    @RequiredFieldValidator(message = "You must enter a string value for 
> last...", key="errors.required.last", shortCircuit=true)
>       @RequiredStringValidator(message = "Last", key="errors.required.last", 
> shortCircuit=true, trim=true)
>       public String getLast() {
>               return last;
>       }
> // Setter
> //    @StringLengthFieldValidator(message="Default message", 
> key="errors.required.last", shortCircuit=true, trim=true, minLength="1", 
> maxLength="35")
> //    @RequiredFieldValidator(message = "You must enter a string value for 
> last...", key="errors.required.last", shortCircuit=true)
>       @RequiredStringValidator(message = "Last", key="errors.required.last", 
> shortCircuit=true, trim=true)    
>       public void setLast(String last) {
>               this.last = last;
>       }
> and jsp snippet
>               <s:form action="addressSearch!search" method="post" 
> validate="false">
>                       <s:textfield name="first" value="%{first}" 
> label="%{getText('label.first')}" labelposition="left" tabindex="1" 
> maxlength="35" required="true" />
>                       <s:textfield name="last" value="%{last}" 
> label="%{getText('label.last')}" labelposition="left" tabindex="2" 
> maxlength="35" required="true"/>
> I also used ModelDriven validation using annotations and behavior is same. 
> Adding namespace attribute to form element and in struts.xml also doesn't 
> help, neither do changing attribute validate="true". I am not declaring any 
> interceptors in struts.xml and am extending my package from struts-default.
> Thanks for your help.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to