首页 > 代码库 > [Teamcenter 2007 开发系列] web 非空验证

[Teamcenter 2007 开发系列] web 非空验证

前言

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 视不同状况更新的栏位和必填验证不同, 可以考虑这种方式。

(当然, 除了这边的处理外,还需要结合其他部分才能完成完整的功能)