[ 
https://issues.apache.org/struts/browse/WW-2485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43204#action_43204
 ] 

Dave Newton commented on WW-2485:
---------------------------------

If short-circuiting is on and one of the validators fails the rest won't fire.

@RequiredFieldValidator is probably not very helpful for text boxes since an 
empty text box will still send back an empty string (not null), so it will 
never indicate an error for a text field that's rendered on a page.

If the length validator isn't firing then post the minimal code and config to 
replicate the issue and see what happens (I use them both without incident, so 
maybe some fresh eyes will be more helpful than mine :)

> 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