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://os890.blogspot.com/search/label/sev-en
- 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
- blog.holisticon.de/tag/extval/
External Projects
- http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/
- http://code.google.com/p/sandbox890/
- http://code.google.com/p/jee-examples/
External Maven Repositories
- os890 stable versions
- os890 snapshot versions
- sandbox890 stable versions
- sandbox890 snapshot versions
Books
Sample Chapters
- https://www.packtpub.com/sites/default/files/sample_chapters/3254_Apache%20MyFaces_SampleChapter.pdf
Articles
- http://jsfcentral.com/articles/myfaces_extval_1.html
- http://jsfcentral.com/articles/myfaces_extval_2.html
- http://jsfcentral.com/articles/myfaces_extval_3.html
- http://www.heise.de/ix/JSF-Validierung-ueber-Metadaten-mit-Apache-MyFaces-Extensions-Validator--/news/meldung/121729
- 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
- Overview of release 1.x.2
- http://www.slideshare.net/mwessendorf/faces-tales-das-jsf-ecosystem
- eJUG slides - metadata based validation (German)
- http://www.slideshare.net/mwessendorf/apache-myfaces-standard-meets-innovation
- Overview of the 3rd release
http://www.slideshare.net/aliok/whats-cool-in-apache-myfaces
- http://www.slideshare.net/bkummel/j-fallext-valbartkummel
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
- @BypassValidation for action methods
+demo
+quick intro - 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
- @SecuredAction for action methods
- Secure required
- App-Prototyping
- Advanced Metadata
- Metadata Provider
- Virtual Metadata
- Conditional Metadata Exclusion
- Metadata Priority
- Transactional Model Validation light
[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
- http://code.google.com/p/jee-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)
The combination with Mojarra requires the current ExtVal Snapshot (1.x.3) or a patched class (see EXTVAL-38) - OpenFaces and QuipuKit
(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