Apache MyFaces Extensions Validator
Apache MyFaces Extensions Validator (ExtVal) provides an extensible framework to validate user input based on annotations.
Main features of ExtVal
- Platform for JSF based validation
- Cross-component validation (including cross-entity validation)
- JPA Support (validation based on JPA annotations)
- Extensible (e.g. custom annotations, error messages and much more!)
- Support for client-side validation
- Validation exception interception
- Zero configuration (just optional)
Bean-Validation (JSR 303) Support (3rd release and higher)
You would like to start with ExtVal?
Please scroll down to the current documentation or read the free sample chapter.
Feature comparisons
http://os890.blogspot.com/2009/02/myfaces-extval-vs-seam-2x-integration.html
http://people.apache.org/~gpetracek/myfaces/extval/comparison.html
ExtVal Links
External ExtVal Links
Blogs
http://www.jroller.com/HazemBlog/entry/jsf_validation_made_easy_with
http://www.bartkummel.net/journal/2009/1/8/apache-myfaces-extensions-validator-introduced.html
External Projects
External Maven Repositories
Books
Sample Chapters
https://www.packtpub.com/sites/default/files/sample_chapters/3254_Apache%20MyFaces_SampleChapter.pdf
Articles
http://www.packtpub.com/article/apache-myfaces-extensions-validator
http://www.packtpub.com/article/customizing-and-extending-apache-myfaces-extval
Presentations
http://www.slideshare.net/os890/myfaces-extensions-validator-part-1-of-3-presentation
http://www.slideshare.net/mwessendorf/faces-tales-das-jsf-ecosystem
http://www.slideshare.net/mwessendorf/apache-myfaces-standard-meets-innovation
http://www.slideshare.net/aliok/whats-cool-in-apache-myfaces
Framework Requirements
- JSF (1.x/2.x)
Commons Logging (ExtVal r1-r3)
Modules of ExtVal
core (required and the only module which depends on the JSF version.)
- validation-modules (optional)
- property-validation (available)
- bean-validation (JSR 303)
- component-support (optional)
trinidad-support (required when using MyFaces-Trinidad)
- generic-support (only for component libs with special requirements)
- examples (optional)
- external extensions and examples (optional)
External ExtVal Add-ons
- Alternative approaches for configuration
- Client-side validation (it's currently a case-study)
Typesafe dependency injection for JSR 303 constraint validators Spring 3 managed constraint validation
- Metadata Provider
- Virtual Metadata
- Conditional Metadata Exclusion
- Metadata Priority
[Maybe your idea/feature request will be here soon - just send an E-Mail or open a feature request in jira]
Details are available at http://os890.blogspot.com/search/label/myfaces-extval-add-on
External ExtVal Add-ons for the BV Integration
Tag based ExtVal-BV Meta-data (tag based alternative for @BeanValidation and @ModelValidation)
Work in progress
ExtVal-Core for JSF 2.0
- Stand-alone generic client-side validation
- Validation module: Dynamic Property Validation
Additional features for RichFaces and ICEfaces
[Maybe your idea/feature request will be here soon - just send an E-Mail or open a feature request in jira]
Possible ExtVal Features/Add-ons
A collection of add-on ideas which are possible (most of them are quite easy).
Please vote (via E-Mail), if you need one of it.
(It's not that difficult to impl. it on your own, so maybe you implement it and donate it.)
- Initializers for validation strategies (as addition to the initValidation method)
- Tag for declarative bypass (there is already an annotation based solution)
[Maybe your idea/feature request will be here soon - just send an E-Mail or open a feature request in jira]
Examples
Subdirectories of http://www.apache.org/dist/myfaces/
http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/examples
Documentation
It's important to mention that ExtVal provides several approaches to extend, customize,... the default behavior.
We recommend to choose one approach you prefer and use it consistently!
Basically there are 3 available approaches: Conventions (customizable if needed), ExtVal Java API, configuration via web.xml
So choose the approach you prefer! ExtVal tries to provide always a very simple approach for your custom implementations. If you can't find a simple one, just ask for support.
- Basic
- Advanced
- Further Topics
- Internal
Tested Compatibility
- JSF Core
MyFaces 1.1.x and 1.2.x
- Sun RI (Mojarra) 1.2.x
- Sun RI (Mojarra) 2.0.x
- Component Libs
- Core Components
Apache MyFaces Trinidad (requires the trinidad component support module)
Apache MyFaces Tomahawk
Apache MyFaces Tobago (requires the generic component support module)
PrimeFaces (see PrimeFaces@os890)
ICEfaces (requires some changes - see ICEfaces@os890)
ICEfaces 2 (details see ICEfaces2@os890)
RichFaces (requires the generic component support module - see RichFaces@os890)
(There are just some components which aren't compatible out-of-the-box.
These components and joining client-side validation based on constraints require a component-support module.
If you are interested in such a support please contact us.)
- Integration of other Validation Frameworks
- Bean-Validation (JSR 303)
- Hibernate Validator v4
- Other implementations of JSR 303
- Bean-Validation (JSR 303)
- Other Frameworks
- Seam
- Ajax4jsf (requires the generic component support module)
- View technologies
JavaServer Pages (JSP)
- Facelets