Formio 简介

1、什么是 Formio ?

官方地址:http://www.formio.net
文档地址:http://www.formio.net/documentation/
源码地址:https://github.com/beranradek/formio

Formio 是用于基于表单的渐进式Web应用程序的组合的表单和数据管理平台。它使Web应用程序开发人员可以使用简单的拖放式表单构建器界面快速创建表单和资源。这些表单的创建会生成一个JSON模式,该JSON模式既可用于在Progressive应用程序中动态呈现表单,又可在提交表单时自动生成相应的API来接收数据。

2、Formio 特点

  • 易于使用的可配置便捷工具。
  • 自动双向绑定,甚至可以绑定到不可变的对象,基元,集合和数组,嵌套的对象及其列表。
  • 支持(非)默认构造函数,静态工厂方法。
  • 表单数据的验证(可以使用bean验证API注释和net.formio.validation.Validator)。
  • 无缝支持文件上传和可配置的最高 请求/文件大小。
  • 表单定义是不可变的,可组合的,自包含的,可以轻松共享和缓存。
  • 可以选择使用自动生成表单标记(或其部分)。
  • API的一个简单入口点:Forms 类。
  • 非侵入性–与框架轻松集成,最小依赖。
  • 可与各种模板框架,servlet,portlet甚至在 桌面应用程序中一起使用。
  • 简单的单元可测试表格。
  • 良好的测试覆盖率(约占线路的70%)。
  • 使用形式的授权令牌来防御CSRF攻击。
  • 灵感主要来自精心设计的Play!框架。

3、三个步骤开始

3.1、准备表单定义(可选的属性自动映射):
private static final FormMapping<Person> personForm =
  Forms.automatic(Person.class, "person").build();
3.2、用数据填充它:
FormData<Person> formData = new FormData<>(
  person, ValidationResult.empty);
FormMapping<Person> filledForm =
  personForm.fill(formData);
// Push the filled form into a template,
// use its properties to render it; or use
// FormRenderer to generate form markup
// automatically
3.3、将请求中的数据绑定回一个对象:
FormData<Person> formData = personForm.bind(
  new ServletRequestParams(request));
if (formData.isValid()) {
  // save the person: formData.getData()
} else {
  // show again the invalid form with validation
  // messages: personForm.fill(formData) ...
}
作者:Jeebiz  创建时间:2020-01-10 13:52
 更新时间:2024-08-05 18:41