You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Dave Newton (JIRA)" <ji...@apache.org> on 2008/02/12 22:29:40 UTC

[jira] Commented: (WW-2485) Annotation validations (@StringFieldValidator, @StringLengthFieldValidator) doesn't work while @RequiredStringValidator doesn't do shortcircuiting

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

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

I'm a bit confused; in the above code there's only one validator per field, so how would you know if short-circuiting was working or not?

> 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.