为操作添加验证逻辑
创建新操作时,可能需要执行一些逻辑,以确定是否应在用户界面中启用、禁用或隐藏该操作。可以在
validator 类中写入此逻辑。有关验证服务、写入验证器和为操作注册验证器的详细信息,请参阅
UI 验证。
nonSupportedTypes 和 supportedTypes 属性
通过指定 supportedTypes 或 nonSupportedTypes,操作框架可根据所提及的对象类型启用或禁用该操作。此筛选仅适用于自定义菜单。
在应用程序开发人员定义的任何其他验证服务类之前应用 supportedTypes 或 nonSupportedTypes 筛选。换句话说,它是通用筛选器。
• 如果使用 nonSupportedTypes 属性禁用操作,则不会执行任何已写入的自定义验证器。
• 如果通过 supportedTypes 属性启用操作,则将调用任何已写入的自定义验证器。
例如:
<objecttype name="object" class="java.lang.Object" >
<action name="reports" enabledwhensuspended="true">
<command
url="netmarkets/jsp/carambola/customization/reports/base.jsp"/>
<nonSupportedTypes
value="wt.doc.WTDocument,wt.part.WTPart"/>
</action>
</objecttype>
或者,也可以使用:
<objecttype name="object" class="java.lang.Object" >
<action name="reports" enabledwhensuspended="true">
<command
url="netmarkets/jsp/carambola/customization/reports/base.jsp"/>
<nonSupportedTypes>
<type value="wt.doc.WTDocument" />
<type value=" wt.part.WTPart " />
</nonSupportedTypes>
</action>
</objecttype>
可以指定是否将此筛选应用于对象的子类型。默认情况下,子类型会继承此属性。您可以通过添加其他 applyToDescendants 属性来控制此功能:
<supportedTypes>
<type value="wt.foo.Bar" applyToDescendants=”false” />
</supportedTypes>
|
也可使用 xconf 特性添加支持和不支持的类型。有关详细信息,请参阅“在 XConf 中定义支持和不支持的类型”。
|
参数
|
默认值
|
可能的值
|
必需?
|
说明
|
value
|
|
任何对象类型。使用逗号分隔。
|
是
|
启用或禁用所列对象类型的操作。
对第三级导航和行级别操作启用或禁用操作。不对菜单栏和工具栏操作进行筛选。
|
applyToDescendants
|
true
|
true
false
|
否
|
是否要将类型应用于继承的子类型。如果为 true,则同时支持或不支持所有子类型。如果为 false,则仅支持或不支持指定的类型。
|
在 XConf 中定义支持和不支持的类型
也可以使用 xconf 特性添加 nonSupportedTypes 和 supportedTypes 筛选。提供了一个基于类型的 xconf 操作筛选器,该筛选器可用于查找 typeBasedActionFilter.properties 文件。
以下列格式指定该特性:
<Property name="<action object>.<action name>.
<supportedTypes or nonSupportedTypes>" value="com.foo.Bar" />
例如:
<Property name="annotation.annotationSets.nonSupportedTypes"
value="wt.part.WTPart" target="codebase/typeBasedActionFilter.properties"/>