解决方案
此解决方案涉及三个或四个应用程序提供的部件:
1. 定义要在向导中显示的表的隐藏表列,并为这些列中的单元格提供默认值 (通过将相应的数据实用程序与这些列相关联)。如果适用,可以使用现有的数据实用程序,但可能需要提供新的特定于应用程序的自定义数据实用程序,以满足这一需求。
此步骤为可选步骤,在某些情况下可略过。如果您的应用程序为向导中显示的表添加了隐藏值,但这些值与整个表关联,而不与表中的任何特定行相关联,则没有任何方法可提供服务器生成的默认值,您也不需要执行此步骤。在这种情况下,客户端逻辑会将一个或多个隐藏输入值添加到表单数据中,如有必要,标识与特定表相关的各个值。
如果您的应用程序需要与表中的特定行相关联的隐藏输入值,则可以在该表中定义一个或多个隐藏列,并让客户端逻辑处理这些列中单元格的值。您的表构建器必须将某些数据实用程序与每一列关联,并且该数据实用程序必须为表格中的每个对象返回一个非 null 值 (否则,客户端的数据存储中将不存在该对象的相应字段)。如果需要提供每个对象的默认值,则使用可返回所需值的数据实用程序。
2. <script/> 块添加到向导的 JSP 文件中,以加载应用程序提供的 JavaScript 文件,其中将包含自定义的隐藏数据操作逻辑。
3. 创建包含自定义的隐藏数据操作逻辑的 JavaScript 文件。
4. 修改向导的表单处理器以从提交的表单中提取隐藏的数据字段,并对这些字段执行所需处理。
必备知识
要获得此结果,需要了解以下内容:
Windchill Web 页面的基本开发
JavaScript
JCA/MVC 表构建器
JCA 表单处理
解决方案元素
元素
类型
说明
<MyTableBuilder.java>
Java 类
此文件用于定义应用程序向导中显示的表格。您将修改此类,使其包含服务器将为其提供默认值的隐藏表列的定义。此元素是可选元素,如果您的应用程序不需要逐表逐行隐藏值,则无需执行此步骤。
<MyScript.js>
JavaScript
此文件将包含应用程序的客户端逻辑,用于添加、修改或移除提交给服务器的表单数据中的隐藏输入。
<MyWizard.jsp>
JSP
此文件用于定义向导的页面。您将修改此文件以包含 <script/> 块,以加载其中包含用于处理隐藏数据元素的逻辑的 JavaScript 文件。
<MyFormProcessor.java>
Java 类
此文件将包含由向导发送到服务器的表单数据的应用程序表单处理器。在此类中,您将提取并处理由客户端 JavaScript 逻辑生成或操作的隐藏数据。
这对您有帮助吗?