创建ViewObject作为表单参数的占位符

时间:2013-01-29 21:00:39

标签: forms jsf-2 oracle-adf jdeveloper

背景

尝试创建ViewObject(使用JDeveloper 11.1.2.3),可以将其放在页面上以创建如下表单:


Form with no inputs


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

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

问题

没有实体支持ViewObject。没有SQL驱动ViewObject。 ViewObject实际上不需要编程访问,也不是静态列表。它只是意味着可以接受验证规则的参数的容器。当开发人员在表单上删除此类ViewObject时,它会创建一个没有可见输入字段的表单:


Form with inputs


幕后代码类似于:

  <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?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

解决方案

你必须:

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

创建视图对象

按如下方式创建视图对象:

  1. 键入 Control + n 以打开新图库
  2. 搜索并选择查看对象
  3. 点击确定
  4. 相应地设置名称显示名称
  5. 数据源设置为程序化
  6. 点击下一步
  7. 点击新建并提供有意义的属性名称。
  8. 点击确定
  9. 添加其余属性。
  10. 点击下一步
  11. 为所有属性设置可更新始终
  12. 输入设置为适当的数据类型。
  13. 点击完成
  14. 配置验证规则

    按如下方式配置验证规则:

    1. 点击属性手指标签。
    2. 选择所需的属性。
    3. 点击验证规则标签。
    4. 点击验证规则部分中的 + 图标。
    5. 根据需要设置规则定义
    6. 根据需要设置错误消息
    7. 重复以根据需要添加任意数量的验证规则。
    8. 此时已配置视图对象,值列表选项卡可用于引用基于查询的LOV。

      配置应用程序模块

      按如下方式配置应用程序模块:

      1. 双击应用程序的应用程序模块。
      2. 选择数据模型手指标签。
      3. 将视图对象从可用视图对象传递到数据模型
      4. 删除 1 后缀。
      5. 保存应用程序。
      6. 注意:如果视图对象不可见,请重新启动JDeveloper。

        创建网页表单

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

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

          更新页面绑定

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

          1. 展开数据控件以显示视图对象的操作
          2. 创建拖到页脚构面中。
          3. 选择 ADF按钮
          4. 右键单击页面。
          5. 选择转到页面定义
          6. 点击可执行文件旁边的 +
          7. 选择 invokeAction
          8. 点击确定
          9. id 设置为:create
          10. 绑定设置为:创建
          11. 单击“确定”。
          12. 将刷新设置为: prepareModelIfNeeded
          13. 全部保存。
          14. 应用验证并可以使用数据驱动的LOV。

            删除“创建”按钮。