SuperAPI AI 工具集

forms-and-validation

前端与建站

查看项目

更新于 10-16 06:15

技能介绍

用途:在 Vaadin 25 Flow 中用 Binder 构建表单并做健壮校验。资料建议不确定具体 API 时用 Vaadin MCP 工具(search_vaadin_docs、get_component_java_api)查询最新文档,并始终设置 vaadin_version 为 25、ui_language 为 java。

主要能力:Binder 连接 UI 字段与表单数据对象(Java bean、record 或 DTO),负责读取、回写、类型转换与各层校验,只能绑定实现 HasValue 的组件(如 TextField、ComboBox、DatePicker、Checkbox)。两种模式:缓冲模式用 readBean 填充、writeBeanIfValid 校验通过后写入,适合带保存/取消的表单;直写模式用 setBean,字段变化立即写入,适合设置面板或简单过滤。

绑定与校验:推荐显式绑定 binder.forField(...).asRequired().withValidator(...).withConverter(...).bind(...),链式顺序决定执行顺序;简写 bind 无校验配置。Bean 使用 Jakarta 注解时可用 BeanValidationBinder 配合 bindInstanceFields。字段类型与属性类型不一致时加转换器(如 StringToIntegerConverter),转换失败会作为校验错误显示,也可用域原语模式建立类型安全值对象。校验分四层:必填 asRequired、绑定级逐字段验证器(内置 StringLength、Email、Regexp、数值与日期范围等,也可用 lambda 或实现 Validator)、组件默认验证器(可用 withDefaultValidator(false) 关闭)、Binder 级跨字段验证器(缓冲模式下仅在 writeBean/writeBeanIfValid 时运行,直写模式下每次字段变化运行)。可用 binder.validate()、binder.isValid()、binder.writeBeanIfValid()触发或检查。

错误与布局:绑定级错误自动显示在字段旁;Binder 级错误需 setStatusLabel 指定状态标签(Lumo 主题可用 LumoUtility.TextColor.ERROR,Aura 需自定义 CSS)。布局用 FormLayout,支持 setColspan 与 setResponsiveSteps 自动响应式分列。

限制:资料未给出具体版本发布日期、收费、平台支持范围或兼容性细节;更多内置验证器、转换器模式与表单模板见 references/form-patterns.md。