hi, it's a bit different. the parameter mentioned by jakob is a jsf 2.0 parameter especially for the jsr 303 integration. if you set it to true, the not-null constraint will be interpreted like required (= true). extval uses it in an abstract class in a similar way. that means: you just have to use it to explicitly deactivate the behavior described above. it's automatically available for custom validation interceptors. an internal example is the validation interceptor of the bean-validation module (which allows to use jsr 303 with all jsf versions).
the property validation module of the next release (as well as the available milestone) overrides this new default behavior so that an empty field doesn't lead to a null value for validation (due to backward compatibility reasons). however, you can easily customize this behavior. back to the original question: extval just delegates to the (configured) jsf length validator. so basically the behavior depends on the implementation you are using in your application. in this case the default implementation throws an exception because it isn't aware of empty values. to change this behavior you can: - register your custom jsf-length-validator implementation (see: javax.faces.Length) which handles it as you expect it (that's plain jsf) or - replace the default extval validation strategy for @Length to ignore empty values or - implement your custom extval annotation all 3 possibilities are quite easy. regards, gerhard http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces 2009/11/30 Jakob Korherr <[email protected]> > Hi Markus, > > Take a look at the > javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL > config parameter in web.xml. > > Setting this to true will cause that your property "input" will be null, if > the user submits an empty field and thus @Length will not be processed. > > Also take a look at http://jsfatwork.irian.at/semistatic/jsf.html, chapter > 2.12 Validierung fur further information. It's written in german, but I > assume you're from Germany... > > Regards > > Jakob Korherr > > > 2009/11/30 Dreher, Markus <[email protected]> > > > Hi all, > > > > i want to validate a field only when the user filled it out. > > > > It's not a reuqired field, but when it is filled out, the input should > > be at least for example 3 digits. > > > > @Length(minimum=3, maximum = 60) > > private String input; > > > > With @Length this leads to a required field. > > > > Do i miss something? > > > > Regards, > > > > Markus > > > > > > >

