Java 构建器
与旧的基于 JSP 和标记的方法相比,此方法具有多个优点。通过将模型和控制器与 JSP 分离,可以使系统更加灵活且具有可维护性。例如,几个不同的 JSP 现在可利用相同的 java 构建器。而且,构建器现在使用 java 进行编写,因此可以通过继承共享属性。生成许多组件 (表格、树、属性面板等) 的基本步骤如下:
• 描述组件 (组件配置构建器)
• 获取必要的数据 (组件数据构建器)
• 呈现组件 (JSP)
控制器 - ComponentController
对 JCA 组件的请求将路由到集中式
ComponentController。此控制器从请求参数中衍生出组件 ID,然后使用 Spring 配置来查找构建器实现。有关详细信息,请参阅
MVC 组件。
模型 - 组件配置和数据构建器
UI 的模型由组件配置信息和数据组成。这些内容由实现 ComponentConfigBuilder 和 ComponentDataBuilder 接口的一个或多个类创建。
• ComponentConfigBuilder
您可以通过实现 ComponentConfigBuilder 接口的 Java 类来控制 UI 的呈现。此接口包含一种方法 buildComponentConfig。此方法应包含正在构建的 UI 所需的所有配置信息。ComponentConfigBuilder 的一个示例可能如下所示:
public ComponentConfig buildComponentConfig(ComponentParams params) throws WTException {
ComponentConfigFactory factory = getComponentConfigFactory();
TableConfig table = factory.newTableConfig();
table.setLabel("My Table");
table.setSelectable(true);
table.setType("wt.pdmlink.PDMLinkProduct");
table.setActionModel("my_toolbar_actions");
table.setShowCustomViewLink(true);
table.addComponent(factory.newColumnConfig(ICON, true));
table.addComponent(factory.newColumnConfig(NAME, true);
table.addComponent(factory.newColumnConfig(INFO_ACTION, false));
return table;
}
• ComponentDataBuilder
UI 的数据由实现 ComponentDataBuilder 接口的 Java 类创建。此接口包含一种方法 buildComponentData。从此方法返回的对象应表示 UI 的模型,并且可以采用多种形式。此方法可能返回的一些示例包括 ComponentData、可持续对象、QuerySpec、任何自定义 Java 对象等。ComponentDataBuilder 的一个示例可能如下所示:
public Object buildComponentData(ComponentConfig config,
ComponentParams params)
throws Exception {
String tableId="netmarkets.product.list";
return ProductListCommand.getProducts(tableId);
}
• 数据源
表格和树组件可以利用名为“数据源”的新功能。数据源可通过诸如异步加载数据的功能以及在客户端上对数据进行排序和滚动的功能等提供改进的感知表格和树性能。要使用此新的异步功能,您的组件数据构建器应为表组件实现 ComponentDataBuilderAsync,并为树组件实现 TreeDataBuilderAsync。
视图 - JSP
在此方法中,JSP 只是一个“视图”,而不是像 JSP 和标记方法那样,将这三者结合起来。每个组件都有一个默认视图 (JSP),该视图可呈现该组件,但是,如果您想覆盖默认视图,则可以针对 ComponentConfigBuilder 返回的 ComponentConfig 调用 setView()。所有视图 JSP 都应位于 codebase\WEB-INF\jsp 基本位置。
• JSP 的基本元素
为 Java 构建器创建 JSP 视图时,需要注意一些重要的 JSP 片段文件。第一个也是最重要的是 begin_comp.jspf。此文件存在于 codebase\netmarkets\jsp\util\ 中。此 jspf 的用途是设置视图所需的模型数据信息。
包括的另一个 jspf 是 end_comp.jspf,其位于 codebase/netmarkets/jsp/util/ 中。此文件的用途是:标记页面加载已完成,以允许页面中的 javascript 正常运行。jsp 视图的示例可能如下所示:
<%@ taglib uri="http://www.ptc.com/windchill/taglib/jcaMvc" prefix="mvc"%>
<%@include file="/netmarkets/jsp/util/begin_comp.jspf"%>
<mvc:table setPageTitle="true"/>
<%@ include file="/netmarkets/jsp/util/end_comp.jspf"%>
支持的组件
• 表
• 树
• 信息页面
• 属性面板
• 属性表
• 特性面板
相关自定义文档