Java中的Web表单框架

Java中的Web表单框架,java,forms,groovy,web,Java,Forms,Groovy,Web,在Java和Groovy中构建web表单的常用方法是什么 Spring和Grails提供了相应的taglib,但我想知道是否存在表单框架,它们允许将表单创建为对象集、动态操作元素、嵌入子表单、填充和验证以及渲染 例如,如果我有一组对许多表单通用的字段,我希望重用代码。此外,这样一组元素又可以是另一组的一部分。我还想动态地重新排序元素,更改字段名和其他输入字段属性,等等,而不改变任何HTML代码。您需要的是一个模板/布局框架,它允许您重用代码片段 在JavaWebdev空间中,是布局的事实框架。G

在Java和Groovy中构建web表单的常用方法是什么

Spring和Grails提供了相应的taglib,但我想知道是否存在表单框架,它们允许将表单创建为对象集、动态操作元素、嵌入子表单、填充和验证以及渲染


例如,如果我有一组对许多表单通用的字段,我希望重用代码。此外,这样一组元素又可以是另一组的一部分。我还想动态地重新排序元素,更改字段名和其他输入字段属性,等等,而不改变任何HTML代码。

您需要的是一个模板/布局框架,它允许您重用代码片段


在JavaWebdev空间中,是布局的事实框架。Grails和springmvc都支持tile。

我还没有遇到一个MVC框架,它可以以两种方式公开一个完整的接口来处理表单数据作为对象。将表单数据转换为对象并返回时,总是需要一些手动编码

还有其他的框架,比如Echo(http://echo.nextapp.com/site/)这将应用程序与处理请求和响应完全隔离开来,它们可能更适合您所寻找的抽象类型。

您可以尝试开源。它可以用于许多环境/框架以及各种模板框架

使用Formio,您可以使用对象操作表单:创建表单定义-映射、表单字段的定义和嵌套映射(用于嵌套对象,如人员地址或地址列表)。映射和表单字段都可以定义为可重用(不可变)对象并组合在一起。您可以使用嵌套映射对表单字段的可重用“组”进行建模(并将它们嵌套到其他组中)

Formio支持从Java对象到表单定义的数据绑定,然后表单定义可以传递到模板并呈现。来自请求的数据可以被验证(使用bean验证API)并绑定回Java对象(新创建的实例或提供的实例)。支持基本Java类型、嵌套对象类型、集合或数组(原语或复杂对象)的绑定。可以使用不可变类

表单定义可以预先填充数据(在传递到模板之前),并用来自请求的(已验证的)数据填充。自动双向数据绑定在表单定义对象的“fill”和“bind”方法中实现

Formio是以服务器为中心的库,但可以与现有的客户端库结合使用。渲染由模板系统完成。例如,使用JSP,您可以准备自己的可重用标记来呈现表单定义,表单定义中填充了数据及其部分(嵌套映射、各种类型的表单字段),这些数据已经包含了要呈现的所有必要数据,包括诸如可见、启用、只读、必需等标志。您可以定义自己的自定义字段属性,并在可重用的标记/模板片段中使用它们,以便在大多数情况下不需要更改HTML代码


注意:我是这个库的作者,您可以在GitHub上找到源代码并制作您的fork。查看文档以了解更多详细信息。

模板引擎可以用作表单框架的视图层,但仅将标记拆分为可重用块是不够的。重用表单元素装饰并不容易。验证和元素之间的关系应存在于其他地方。更不用说,它无论如何都不允许动态更改从动态更改为业务逻辑。因为这是自发布(是的,我检查了github repo),所以您必须在回答中添加免责声明,声明您是作者/贡献者。