前言
TC 2007 的Web 端,页面简洁也简单。
非空验证的话,直接在后面加上一个 红箭头+ "Required value is not specified." 这样一些红色的提示信息。
而这种验证看上去又是和CF端的form 的定义管理起来的。
定义成require 的属性会做这种验证。
那么在web 端实现的机制是怎样的呢? 是否可以不和CF端绑定,在 Web端直接进行这种验证呢?
实现机制
以创建一个物件为例,关键的action-component 是
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 视不同状况更新的栏位和必填验证不同, 可以考虑这种方式。
(当然, 除了这边的处理外,还需要结合其他部分才能完成完整的功能)
[Teamcenter 2007 开发系列] web 非空验证
时间: 2024-10-14 12:34:58