Oracle MAF中的LOV

我们都喜欢最强大的ADF功能值列表之一。 使用它们,我们可以在ADF应用程序中声明性地轻松构建非常复杂的功能。 一件好事是,我们在Oracle MAF中也有类似的方法。 在ADF BC中,我们在业务服务级别(基本上在实体或VO级别)定义LOV,属性UI提示,验证规则等。 在MAF中,我们可以执行相同的操作,但是可以在数据控件级别执行。 这很明显,因为谁知道业务服务是什么。 它可以是Oracle MAF中的任何内容。

因此,在这篇文章中,我将展示如何在Oracle MAF中定义和使用LOV。

让我们考虑一个简单的用例。 有一个付款表格如下:

iOS模拟器屏幕截图,2015年2月28日,下午4.50.55

最终用户在下拉列表中选择一个帐户,帐户总余额将用作默认付款金额,但是该金额可以更改。

业务模型基于几个POJO类:

public class PaymentBO {private int accountid;private double amount;private String note;

public class AccountBO {private int id;private String accountName;private double balance;

还有一个AccountService类,提供了可用帐户的列表:

public class AccountService {private final static AccountService accountService = new AccountService();private AccountBO[] accounts = new AccountBO[] {new AccountBO(1, "Main Account", 1000.89),new AccountBO(2, "Secondary Account", 670.78),new AccountBO(3, "Pocket Account", 7876.84),new AccountBO(4, "Emergency Account", 7885.80)};public AccountBO[] getAccounts() {return accounts;}public static synchronized AccountService getInstance() {return accountService;}

还有PaymentDC类,它作为数据控件公开:

public class PaymentDC {private final PaymentBO payment = new PaymentBO();private final AccountService accountService = AccountService.getInstance();public PaymentBO getPayment() {return payment;}public AccountBO[] getAccounts() {return accountService.getAccounts();}
}

DataControl结构如下所示:

屏幕截图2015年2月28日下午5.06.48

为了能够定义“付款”属性设置,例如UI提示,验证规则,LOV等。我将单击“铅笔”按钮,我将得到一个看起来与我们在ADF BC中非常相似的表格:

屏幕截图2015年2月28日下午6.28.36
那些熟悉ADF BC的人几乎不会在这里迷路。 因此,在“值列表”页面中,我们可以为accountid属性定义一个LOV:

屏幕截图2015年2月28日下午5.39.59

完成此操作后,我们便可以设置LOV的UI提示等。基本上就是这样。 我们需要做的就是将accountID属性从该DataControl面板拖放到页面上,作为selectOneChoice组件。

屏幕截图2015年2月28日下午5.45.20

<amx:selectOneChoice value="#{bindings.accountid.inputValue}"label="#{bindings.accountid.label}" id="soc1"><amx:selectItems value="#{bindings.accountid.items}" id="si1"/>
</amx:selectOneChoice>

框架将完成剩下的工作,在pageDef文件中定义列表绑定定义:

<list IterBinding="paymentIterator" StaticList="false"Uses="LOV_accountid" id="accountid" DTSupportsMRU="true"SelectItemValueMode="ListObject"/>

但是,当选择帐户时,我们必须以某种方式实现用帐户余额设置付款金额。 在ADF中,我们将能够在LOV的定义中定义多个属性映射,这就是解决方案。 像这样:

屏幕截图2015年2月28日下午5.41.43

但是在MAF中它不起作用。 不幸。 仅主映射有效。 因此,我们将在PaymentBO.setAccountid方法中手动执行此操作:

public void setAccountid(int accountid) {this.accountid = accountid;AccountBO account = AccountService.getInstance().getAccountById(accountid);if (account != null) {setAmount(account.getBalance());}
}

在PaymentBO.setAmount方法中,我们必须触发一个change事件,以便刷新页面上的value字段:

public void setAmount(double amount) {double oldAmount = this.amount;this.amount = amount;propertyChangeSupport.firePropertyChange("amount", oldAmount, amount);
}

而已! 这篇文章的示例应用程序可以在这里下载。 它需要JDeveloper 12.1.3和MAF 2.1.0。

翻译自: https://www.javacodegeeks.com/2015/03/lovs-in-oracle-maf.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么移动矩形选框工具选中的东西_ps矩形选框工具怎么用,你值得一看的技巧...

PS是一款非常好用的图片制作软件&#xff0c;我们可以使用矩形选框工具&#xff0c;选择自己需要的区域进行操作&#xff0c;下面小编就教大家ps矩形选框工具怎么用&#xff0c;希望可以帮助到大家。操作方法01首先我们打开PS进入到主界面&#xff0c;如图所示。02之后我们需要…

stream 过滤俩个字段_Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合...

点波关注不迷路&#xff0c;一键三连好运连连&#xff01;先贴上几个案例&#xff0c;水平高超的同学可以挑战一下&#xff1a;从员工集合中筛选出salary大于8000的员工&#xff0c;并放置到新的集合里。统计员工的最高薪资、平均薪资、薪资之和。将员工按薪资从高到低排序&…

一个JSF清单示例

这是使用JSF 2.0&#xff08;JavaServer Faces&#xff09;构建的示例列表应用程序。 该应用程序是待办事项列表。 该应用程序具有添加&#xff0c;编辑或删除列表中项目的功能。 待办事项具有名称和描述属性。 完成的应用程序的JSF页面具有&#xff1a; 使用h:selectOneList…

hdu 2444(二分图的判断以及求最大匹配)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2444思路&#xff1a;首先要判断能否构成二分图&#xff0c;用bfs对当前点u染色&#xff0c;对u的邻接点v的颜色进行判断&#xff0c;如果为染色&#xff0c;则染色后入队列&#xff0c;否则&#xff0c;判断co…

Delta架构:统一Lambda架构并利用Hadoop / REST中的Storm

最近&#xff0c;一群人要求我详细介绍我为我们的书《分布式实时计算的风暴蓝图》撰写的Druid / Storm集成。 德鲁伊很棒。 风暴很大。 两者一起解决了实时维查询/聚合问题。 实际上&#xff0c;人们正在将其视为主流&#xff0c;将其称为RAD Stack &#xff0c;并添加了“ La…

activiti mysql 版本_Mysql8.0.17版本不能自动创建activiti表的坑

maven项目如下&#xff1a;配置好数据库&#xff0c;和activiti的配置之后&#xff0c;开始执行流程部署package com.yuanqiao.first_activiti.deployment;import java.util.List;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import …

Linux Kernel 多个本地信息泄露漏洞

漏洞名称&#xff1a;Linux Kernel 多个本地信息泄露漏洞CNNVD编号&#xff1a;CNNVD-201306-028发布时间&#xff1a;2013-06-04更新时间&#xff1a;2013-06-04危害等级&#xff1a; 漏洞类型&#xff1a; 威胁类型&#xff1a;本地CVE编号&#xff1a; 漏洞来源&#xff1a…

Spinner 学习笔记

Adapter 适配器//方法一&#xff1a;直接使用字符串数组//String[] sSexList new String[]{"男", "女"};//方法二&#xff1a;使用资源文件String[] sSexList getResources().getStringArray(R.array.Sexarray);//实例化一个集合适配器ArrayAdapter<S…

Java 8发布一年后,IDE和编译器尚未完全就绪

一年前&#xff0c;即2014年3月18日 &#xff0c;发布了Java SE 8&#xff0c;并伴随着通过lambda表达式和streams API实现了功能性编程的幸福。 这对于我们所有的Java生态系统都是个好消息&#xff0c;许多人已经升级到Java8。Stack Overflow已经提出了大约2500个有关Java 8的…

mysql注入提取邮件_【sql注入教程】mysql注入直接getshell

Mysql注入直接getshell的条件相对来说比较苛刻点把1:要知道网站绝对路径&#xff0c;可以通过报错&#xff0c;phpinfo界面&#xff0c;404界面等一些方式知道2:gpc没有开启&#xff0c;开启了单引号被转义了&#xff0c;语句就不能正常执行了3:要有file权限&#xff0c;默认情…

使用WildFly 8.2.0.Final,Primefaces 5.1和MySQL 5的JDBC领域和基于表单的身份验证

我会不时查看我博客上最受欢迎的内容&#xff0c;并尽力满足您的最佳需求。 因此&#xff0c;阅读我的博客是其他读者推动内容的一种方式。 另一种方法是通过评论或电子邮件与我联系。 今天&#xff0c;我将使用Primefaces修改我的JDBC Realm示例并将其更新到最新的WildFly服务…

【转】代码里的命名规则:错误的和正确的对比

原文出处&#xff1a; goyello 译文出处&#xff1a; 外刊IT评论 编程初学者总是把大量的时间用在学习编程语言&#xff0c;语法&#xff0c;技巧和编程工具的使用上。他们认为&#xff0c;如果掌握了这些技术技巧&#xff0c;他们就能成为不错的程序员。然而&#xff0c;计算…

您的Apache Camel应用程序现在包括现成的文档

几个月前&#xff0c;我在博客中发布了有关即将发布的2.15版本的信息&#xff0c;该功能包括获取有关在端点上配置的每个属性的详细信息的功能-Apache Camel&#xff0c;请向我解释这些端点选项的含义 。 我们沿着这条道路继续前进&#xff0c;今天&#xff0c;我们将其从端点…

具有Spring Boot和数据功能的Java头优先弹性搜索

在本文中&#xff0c;我将为您提供有关如何在Java项目中使用Elastic Search的简单介绍。 由于Spring Boot是开始我们项目的最简单&#xff0c;最快的方法&#xff0c;因此我选择使用它。 此外&#xff0c;我们将大量使用心爱的Spring Data的Repository Goods。 首先&#xff0…

python 表单中值为空的还需要传入么_牛掰!100行Python,自动动手打造一款多国语言翻译软件...

大家在平时的学习或者工作中&#xff0c;往往少不了要阅读外文的文献&#xff0c;或者将外文的文献翻译成中文。这时候就需要打开网页&#xff0c;然后进行搜索&#xff0c;非常的麻烦。既然是玩Python&#xff0c;小编就带领大家来打造一款多种语言翻译的软件&#xff0c;无需…

使用Visual Studio 2010 一步一步创建Powershell Module 和 Cmdlet

之前写了一个C# 调用PowerShell方法&#xff0c; 那么怎么反过来操作呢&#xff0c;也就是怎么样用C#写一个powershell命令呢&#xff1f; 现在就用C#写一个超级简单的Module和Cmdlet 1. 在VS中创建一个Library的项目 文件->新建->项目->C#->Class Library 在这里给…

休眠锁定模式– PESSIMISTIC_FORCE_INCREMENT锁定模式如何工作

介绍 在我以前的文章中 &#xff0c;我介绍了OPTIMISTIC_FORCE_INCREMENT锁定模式&#xff0c;并将其应用于将子实体版本更改传播到锁定的父实体。 在本文中&#xff0c;我将介绍PESSIMISTIC_FORCE_INCREMENT锁定模式&#xff0c;并将其与乐观的锁定模式进行比较。 相像多于不…

实用程序类与函数式编程无关

最近&#xff0c;我被指控反对函数式编程&#xff0c;因为我将实用程序类称为反模式 。 绝对是错的&#xff01; 好吧&#xff0c;我确实认为它们是一种糟糕的反模式&#xff0c;但是它们与函数式编程无关。 我相信有两个基本原因。 首先&#xff0c;函数式编程是声明性的&…

freeredius3.0 mysql_EDIUS视频采集卡 STROM 3G HD/HD SDI

EDIUS STROM 3G HD/HD SDI高清非编系统视音频采集卡STORM 3G? 适用于视频专业人士&#xff0c;满足基于SDI编辑和无带化工作流程&#xff0c;同时可以在低成本的HDMI监&#xff0f;视器上预监。基于PCIe插口类型的STORM 3G解决方案包括EDIUS?非线性编辑软件&#xff0c;3G HD…

以编程方式确定Java类的JDK编译版本

当需要确定使用哪个JDK版本来编译特定的Java .class文件时&#xff0c; 通常使用的方法是使用javap并在javap输出中查找列出的“主要版本”。 我在博客文章Autoboxing&#xff0c;Unboxing和NoSuchMethodError中引用了这种方法&#xff0c;但是在继续以编程方式实现此方法之前&…