Form BeanRelease Notes



  • Chg: The bean instance passed to render() methods is now optional.


  • New: FormField.set() to set form field messages.
  • New: date and datetime-local default types for Date and DateTime Fantom fields. (Browser date support has improved.)
  • Chg: OptionsProvider, InputSkin, and ErrorSkin mixins are no-longer const, although most implementing classes probably should be (if contributing them to a service).
  • Chg: min and max validation fields in HtmlInput and FormField are now Obj types to cater for Date and DateTime.
  • Bug: FormBean.fieldMsg() was not picking up msgs with bean prefixes.


  • New: Added autocomplete to FormField and HtmlInput as its usage is now gaining tracktion.
  • Bug: Form labels incorrectly rendered the input name as the for attribute instead of the ID.


  • New: Exposed FormField.toValue() to convert client values to server side values.
  • Chg: Added color as a text InputSkin type.
  • Bug: Fixed rare NPE when inspecting beans.


  • New: SleepSafe integration! Forms automatically render hidden inputs with CSRF tokens.
  • New: Str maps may be contributed to Messages.
  • New: Added FormField.disabled field that just renders the common attribute.
  • Bug: HTML5 validation would pass if a corresponsing validation msg could not be found. (You would need to override Messages to encouter this.)


  • New: Removed hard dependency on BedSheet so domain objects may more easilty use / integrate with FormBean validation. The limited BedSheet integration is instead resolved at runtime. Requires BedSheet v1.5.8.
  • New: Added FormField.toClient()
  • Chg: Renamed FormBean.validateRequest() to validateHttpRequest() and dropped the HttpRequest parameter.



  • New: FormBean.renderUniqueIds allows the same form to be rendered multiple times on the same page.
  • New: HtmlInput.validationMethod and FormField.validationMethod provide an alternative means to specifying @Validate methods.
  • New: Added FormBean.getByField() as convenience for formBean.formFields.get(field).
  • New: Added FormField.stash, handy for passing data to static validate methods.
  • New: Messages.clear() to clear the messages cache.
  • Bug: null field input types were rendered as type="null" instead of type="text".


  • New: FormBean.validateField() to validate individual fields.
  • New: FormField.populate() allows form fields be individually populated from @HtmlInput facets and messages.
  • New: Added hash(), equals(), & toStr() to FormField.
  • Chg: Changed the FormField ctor. (Potential breaking change.)
  • Bug: Fixed NPE in FormBean.validateRequest() when request had no Content-Type HTTP header.
  • Bug: Potential for Messages to throw an NPE if a pod contained resource files with no extension.
  • Bug: There was no default message for pattern.


  • Chg: File uploads now return in-memory files. Use FormBean.fileUploadHook to change this behaviour.
  • Chg: FormBean.formFields is no longer read only.
  • Chg: Removed direct dependency on IoC Config.


  • Chg: File uploads are no longer placed in a unique directory - it felt weird and wrong asking people to delete a directory!
  • ((( DANGER! ))) - if upgrading from v1.1.2, DO NOT DELETE the parent directory of file uploads!
  • Bug: minlength input attribute was incorrectly rendered as minLength - should have been all lowercase.


  • New: FormBean now handles File uploads!
  • New: Added a simple Radio button skin.
  • Chg: OptionsProvider.options() now takes a bean instance.


  • New: @Validate methods for custom server side validation.
  • New: All attributes from @HtmlInput are pre-populated from message values and are available in FormField.
  • New: @HtmlInput.viewOnly attribute.
  • New: Messages service is now public.
  • New: FormFields are created via FieldInspectors.
  • New: FormBean.reinspectBean() method.
  • Chg: OptionsProvider methods now take FormField for contextual customisation. (Breaking change.)
  • Chg: Rejigged all the message keys, see Message Cheat Sheet for details. (Breaking change.)
  • Chg: Updated to work with IoC v3.0. (Breaking change.)
  • Chg: HtmlInput.required defaults to true if the field is non-nullable.
  • Chg: Messages files may also have a .props extension.


  • Chg: Exposed SkinCtx.formField as the current field being rendered.
  • Bug: Could not render validation messages when run from a script.


  • New: Messages are a lot more customisable.
  • New: Customisable ErrorSkin for form errors.
  • New: Added SkinCtx.renderAttributes()



  • Chg: Removed dependency on efanXtra.


  • New: Preview release.