i have studied many, many answers , still can't see i'm doing wrong.
i have rest service controller takes bean parameter , validate fields on bean set.
the following (a portion of) configuration object.
@configuration @componentscan({...}) @enablewebmvc public class appconfig extends webmvcconfigureradapter { @bean public validator validator() { localvalidatorfactorybean validatorbean = new localvalidatorfactorybean(); return validatorbean; } @override public validator getvalidator() { return validator(); } } i can't tell if necessary, can tell they're never called, maybe they're in wrong place?
the following (a portion of) pom.xml:
<dependency> <groupid>javax.validation</groupid> <artifactid>validation-api</artifactid> <version>1.1.0.final</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator</artifactid> <version>5.1.3.final</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator-annotation-processor</artifactid> <version>5.1.1.final</version> </dependency> <dependency> <groupid>javax.el</groupid> <artifactid>javax.el-api</artifactid> <version>3.0.0</version> <scope>provided</scope> </dependency> i don't think el necessary i'm doing, included in case made difference.
here (a portion of) bean class needs validated:
public class contactinfo { @notnull @size(min=1, max=50) private string phone; public string getphone() { return phone; } public void setphone(string phone) { this.phone = phone; } } and finally, (a portion of) rest controller:
@restcontroller @requestmapping("/contact") public class contactcontroller { private static final string user_id_attribute = "userid"; @autowired private validator validator; @autowired @qualifier("contactservice") private contactservice service; @requestmapping("/submit") public void submitcontact( @valid @requestbody contactinfo formdata, bindingresult result) throws exception { assert(validator != null); if(result.haserrors()) { throw new exception("i don't 1 bit."); } service.submitcontact(formdata); } } in debugger, can see validator passed in optionalvalidatorfactorybean, , result.haserrors() false.
the json passed in controller includes this:
{ "phone":"" } i think should trigger validation error because doesn't meet minimum size.
Comments
Post a Comment