0

背景

尝试创建一个可以拖放到页面上的ViewObject (使用 JDeveloper 11.1.2.3)以创建如下表单:


没有输入的表格


表单参数必须提交给自定义报告框架。在 ViewObject 中,某些属性必须链接到 List-of-Value 选择器,或者自动从 ViewObject 中获取其数据类型。开发人员应该能够拖放 ViewObject 以创建功能表单。

这将允许表单使用 ViewObject 执行输入验证,并允许使用 List-of-Value 对象。

问题

没有支持 ViewObject 的实体。没有驱动 ViewObject 的 SQL。ViewObject 并不真正需要编程访问,也不是静态列表。它只是一个容器,可以容纳可以遵守验证规则的参数。当开发人员在表单上放置这样的 ViewObject 时,它会创建一个没有可见输入字段的表单:


带输入的表单


幕后的代码类似于:

  <af:inputText value="#{bindings.ManagementCentre.inputValue}"
                label="#{bindings.ManagementCentre.hints.label}"
                required="#{bindings.ManagementCentre.hints.mandatory}"
                columns="#{bindings.ManagementCentre.hints.displayWidth}"
                maximumLength="#{bindings.ManagementCentre.hints.precision}"
                shortDesc="#{bindings.ManagementCentre.hints.tooltip}"
                id="report_P_MANAGEMENT_CENTRE">
  </af:inputText>
  <af:inputText value="#{bindings.ClinicServiceCentreName.inputValue}"
                label="#{bindings.ClinicServiceCentreName.hints.label}"
                required="#{bindings.ClinicServiceCentreName.hints.mandatory}"
                columns="#{bindings.ClinicServiceCentreName.hints.displayWidth}"
                maximumLength="#{bindings.ClinicServiceCentreName.hints.precision}"
                shortDesc="#{bindings.ClinicServiceCentreName.hints.tooltip}"
                id="report_P_CLINIC_SERVICE_CENTRE">
    <f:validator binding="#{bindings.ClinicServiceCentreName.validator}"/>
    </af:inputText>

提交按钮的代码运行托管 bean 以提取表单参数并将它们传递到报告中(通过报告框架):

  <af:commandButton text="Run Report" id="submitReport">
    <af:fileDownloadActionListener method="#{reportBean.run}" />
  </af:commandButton>

问题

如何创建这样一个可以执行验证但不需要数据源支持的 ViewObject?

4

2 回答 2

1

您可以使用一个接受两个参数的方法创建一个简单的 Java 类。将 Java 类公开为数据控件,然后将其拖到您的页面中以创建参数表单。

然后,您可以为字段添加 LOV 等。 https://blogs.oracle.com/shay/entry/adding_lov_to_non_database

于 2013-01-29T22:52:30.240 回答
0

解决方案

你必须:

  • 创建一个具有所需属性的编程视图对象。
  • 使用验证规则配置视图对象。
  • 配置应用程序模块。
  • 创建网页表单。
  • 更新页面绑定以创建新行。

创建视图对象

创建视图对象如下:

  1. 键入Control+n以打开新图库
  2. 搜索并选择查看对象
  3. 单击确定
  4. 适当设置PackageNameDisplay Name
  5. 数据源设置为Programmatic
  6. 单击下一步
  7. 单击新建并提供有意义的属性名称。
  8. 单击确定
  9. 添加剩余的属性。
  10. 单击下一步
  11. 将所有属性的可更新设置为始终
  12. 类型设置为适当的数据类型。
  13. 单击完成

配置验证规则

配置验证规则如下:

  1. 单击属性手指选项卡。
  2. 选择所需的属性。
  3. 单击验证规则选项卡。
  4. 单击“验证规则”部分中的+图标。
  5. 根据需要设置规则定义
  6. 根据需要设置错误消息
  7. 根据需要重复添加尽可能多的验证规则。

至此,视图对象已配置完毕,“值列表”选项卡可用于引用基于查询的 LOV。

配置应用模块

配置应用模块如下:

  1. 双击应用程序的应用程序模块。
  2. 选择数据模型手指选项卡。
  3. 将视图对象从可用视图对象穿梭到数据模型
  4. 去掉1后缀。
  5. 保存应用程序。

注意:如果视图对象不可见,请重新启动 JDeveloper。

创建网页表单

为表单创建一个网页,如下所示:

  1. 为视图对象创建一个新的 JSF 页面。
  2. 刷新数据控件以查看视图对象实例。
  3. 将视图对象拖放到页面上。
  4. 选择表格 » ADF 表格
  5. 检查包括提交按钮
  6. 单击确定

网页已创建。

更新页面绑定

除非为视图对象实例创建了“行”,否则不能更改视图对象的属性。创建此内存行必须在显示页面内容之前发生。按如下方式完成:

  1. 展开 Data Controls 以显示视图对象的Operations
  2. 将“创建”拖到页脚构面中。
  3. 选择ADF 按钮
  4. 在页面上单击鼠标右键。
  5. 选择转到页面定义
  6. 单击Executables旁边的+
  7. 选择调用动作
  8. 单击确定
  9. id设置为:创建
  10. 绑定设置为:创建
  11. 单击确定。
  12. 将刷新设置为:prepareModelIfNeeded
  13. 保存全部。

应用验证并且可以使用数据驱动的 LOV。

删除“创建”按钮。

于 2013-01-30T19:09:51.153 回答