ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 前言 TC 2007 的Web 端,页面简洁也简单。 非空验证的话,直接在后面加上一个 红箭头+ "Required value is not specified." 这样一些红色的提示信息。 而这种验证看上去又是和CF端的form 的定义管理起来的。 定义成require 的属性会做这种验证。 那么在web 端实现的机制是怎样的呢? 是否可以不和CF端绑定,在 Web端直接进行这种验证呢? ### 实现机制 以创建一个物件为例,关键的action-component 是 ![](https://box.kancloud.cn/2016-02-18_56c5448f84fde.jpg) ModelEntity -- 这是web 端用来显示的对象 outValidationException - -> 包含了异常信息的对象集。 有了这些概念,在看看 EnterpriseValidationActionComponent.java这只代码很容易的就可以得出结论: 使用 AttributeValidationException 就能够得到想要的结果, 事实也如此。 贴一个代码段: ~~~ AttributeValidationException[] attr_exceptions = new AttributeValidationException[1]; AttributeValidationException attr_exception = new AttributeValidationException("Description","Required value is not specified."); attr_exceptions[0] = attr_exception; ValidationException ve = new ValidationException(dialogModelEntity,attr_exceptions); arguments.setObject("outValidatedModelEntity", dialogModelEntity); arguments.setObject("outValidationException", ve); OptionSet options = action_context.getOptionSet(); Option localOption2 = options.getOption("validation-error"); ~~~ ### 适用状况 如果需要使用自己定义的非 Create, Update 的dialog 进行验证, 或是update 视不同状况更新的栏位和必填验证不同, 可以考虑这种方式。 (当然, 除了这边的处理外,还需要结合其他部分才能完成完整的功能) ###