[ https://issues.apache.org/struts/browse/WW-2485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zahid Nazir updated WW-2485: ---------------------------- Description: 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=false) @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=false) @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. was: 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=false) @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=false) @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. > 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=false) > @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=false) > @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.