idf和adf_ADF:弹出窗口,对话框和输入组件

idf和adf

在本文中,当我们有一个af:popup包含af:dialog并在其中包含输入组件时,我想重点介绍一个非常常见的用例。 实现此用例时,需要注意一些陷阱。

让我们考虑一个简单的示例:

<af:popup id="p1" contentDelivery="lazyUncached"><af:dialog id="d2" title="Dialog" ><af:inputText value="#{TheBean.firstName}" label="First Name" id="it1"/><af:inputText value="#{TheBean.lastName}" label="Last Name" id="it2"/></af:dialog></af:popup>

这里最有趣的是弹出窗口的属性contentDelivery ,该属性设置为lazyUncached 。 这样可以防止弹出窗口缓存提交的输入值,并强制其从每个请求的模型中获取值,而不是使用缓存中的值。

让我们将示例变得更加复杂。 在姓氏的设置器中,我们将引发一个异常:

public void setLastName(String lastName) throws Exception {        this.lastName = lastName;        throw new Exception("This last name is bad");
}

因此,显然,如果我们尝试提交对话框,则会得到以下信息:

屏幕截图2014年8月4日下午7.09.13
输入值不能提交给模型,它们将存储在输入组件的局部值中。 即使我们按“ 取消”按钮,也不会清除这些本地值,并且在子序列请求期间将使用这些值。 为了防止这种行为,我们必须将弹出窗口的resetEditableValues属性设置为whenCanceled 。 像这样:

<af:popup id="p1" contentDelivery="lazyUncached"resetEditableValues="whenCanceled"><af:dialog id="d2" title="Dialog" ><af:inputText value="#{TheBean.firstName}" label="First Name" id="it1"/><af:inputText value="#{TheBean.lastName}" label="Last Name" id="it2"/></af:dialog>  </af:popup>

让我们来看一个带有自定义按钮的af:dialog的示例:

<af:popup id="p1" contentDelivery="lazyUncached"resetEditableValues="whenCanceled"binding="#{TheBean.popup}"><af:dialog id="d2" title="Dialog" type="none"><af:inputText value="#{TheBean.firstName}" label="First Name" id="it1"/><af:inputText value="#{TheBean.lastName}" label="Last Name" id="it2"/><f:facet name="buttonBar"><af:panelGroupLayout layout="horizontal" id="pgl1"><af:button text="Ok" id="b2" actionListener="#{TheBean.buttonActionListener}"/><af:button text="Cancel" id="b3" immediate="true"actionListener="#{TheBean.buttonActionListener}"/></af:panelGroupLayout>  </f:facet></af:dialog>  </af:popup>

因此,使用以下actionListener有两个自定义按钮“ Ok”“ Cancel”

public void buttonActionListener(ActionEvent actionEvent) {getPopup().hide();
}

在这种情况下, resetEditableValues不起作用,并且在按“ 取消”按钮时,不会清除输入组件的本地值。 有两个选项可以解决此问题。

第一个是将af:resetListener添加到“取消”按钮:

<af:button text="Cancel" id="b3" immediate="true"actionListener="#{TheBean.buttonActionListener}"><af:resetListener type="action"/></af:button>

第二个选项是取消弹出窗口,而不仅仅是将其隐藏在“取消”按钮操作侦听器中:

<af:button text="Ok" id="b2" actionListener="#{TheBean.buttonActionListener}"/><af:button text="Cancel" id="b3" immediate="true"actionListener="#{TheBean.cancelButtonActionListener}"/>
public void cancelButtonActionListener(ActionEvent actionEvent) {getPopup().cancel();
}

而已!

翻译自: https://www.javacodegeeks.com/2014/08/adf-popup-dialog-and-input-components.html

idf和adf

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

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

相关文章

自制串口示波器小工具

因为博主喜欢玩嵌入式&#xff0c;经常与各种硬件打交道&#xff0c;常常需要采集下位机的信号&#xff0c;无奈学生党&#xff0c;买不起示波器&#xff0c;自己用python写了一个串口示波器的上位机&#xff0c;可以很简单的和下位机配合组成示波器&#xff0c;效果如图&#…

ELK堆栈入门

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 好的设计原则要求微服务架构是可观察的&#xff0c;并提供集中的监视工具。 该工具使开发团队…

speex在stm32f407单片机上的移植

最近做的网络语音的项目需要用到speex中的一些功能&#xff0c;查了一下资料发现移植给mcu的经验大多零零碎碎&#xff0c;自己捣鼓了一晚上总算是移植好了&#xff0c;写个博客记录一下。1.获取speex源码 官方下载&#xff1a; 官方地址 博主移植用的源码以及移植好的工程下…

在Kafka上异步发送数据

对于一个项目&#xff0c;我试图记录用户的基本交易&#xff0c;例如添加和删除一个项目以及多种类型的项目&#xff0c;并为每笔交易向kafka发送一条消息。 日志机制的准确性不是至关重要的&#xff0c;在kafka服务器停机的情况下&#xff0c;我不希望它阻止我的业务代码。 在…

devc++工程提示“源文件未编译”的可能问题

博主使用devc5.11&#xff0c;win7&#xff0c;创建了一个c工程以后编译一直提示“源文件未编译”&#xff0c;查了两小时博客期间反复重装&#xff0c;最后还是靠自己误打误撞解决了&#xff0c;解决步骤如下&#xff1a; 1、安装时语言选择English。 网上各种教程教新人安装…

vmware网络桥接模式无法上网的解决办法

1.vmware->编辑->虚拟网络编辑器->桥接模式->选择有线网卡 2.VMware-虚拟机设置-网络适配器-桥接模式-复制物理网络连接状态、启动时连接 3.重启虚拟机&#xff0c;完成 如果出现连接到网络但是无法上网的情况&#xff0c;还需做如下处理 1.sudo gedit /etc/res…

oracle idm_深入了解Oracle IDM审核

oracle idm在处理敏感信息的任何产品中&#xff0c; 报告都是至关重要的功能。 同样适用于身份和访问管理工具。 Oracle IDM的审核模块是其OOTB报告功能的基础。 让我们快速了解一下审核引擎以及它如何促进OIM中的报告功能。 这里介绍的用例很简单– 在OIM中更改为用户记录。 …

C语言编写贪吃蛇游戏

自己用C语言编写一个贪吃蛇游戏&#xff0c;效果如图&#xff1a; 源代码可免费下载&#xff0c;传送门如下&#xff1a; 点击下载贪吃蛇游戏和源代码

JDK 13中的JEP 355文本块

JDK 13已于2019年9月17日上线GA&#xff0c; 此处列出了重要的新功能。 新功能之一是“文本块”。 这样可以轻松地编写多行字符串&#xff0c;而不必在拆分成不同的行时进行串联。 让我们快速了解创建多行字符串的不同方法&#xff1a; String aBlock """ SE…

java8 默认方法_默认方法:Java 8的无名英雄

java8 默认方法几周前&#xff0c;我写了一个博客&#xff0c;说开发人员学习新语言是因为它们很酷。 我仍然坚持这个主张&#xff0c;因为关于Java 8的事情真的很酷。 尽管毫无疑问&#xff0c;该节目的明星是添加了Lambdas和将函数提升为一等变量&#xff0c;但我目前最喜欢的…

两个常见的并发错误

作为Baeldung的编辑&#xff0c;我很高兴与一位作者一起撰写有关Java通用并发陷阱的文章。 这是一本不错的书&#xff0c;但是假设开发人员具有一定的能力。 我已经看到了几件即时并发失败的事情。 它们很容易添加到代码中&#xff0c;并保证为您提供奇怪的结果。 开发人员仍会…

kotlin自定义View出现 java.lang.ClassNotFoundException

问题1&#xff1a;找不到所引用的自定义View Didn’t find class “dxf.example.dxf.customviewdemo.MyTextView” on path: DexPathList 原因&#xff1a;build.gradle中 应用插件 解决&#xff1a;添加 apply plugin: ‘kotlin-android’ 问题2&#xff1a; java.lang.Cl…

javafx swing_JavaFX技巧9:请勿混用Swing / JavaFX

javafx swingJavaFX团队非常努力地说服我们&#xff0c;因为可以将Swing内容嵌入JavaFX UI中&#xff0c;反之亦然&#xff0c;因此从Swing迁移到JavaFX很容易。 我必须承认&#xff0c;我从来没有尝试过&#xff0c;但是根据我从客户那里得到的反馈&#xff0c;我只能建议不要…

kotlin-unresolved reference daclaredFunctions

问题&#xff1a;如题 原因&#xff1a; 默认编译时不导入kotlin-reflect.jar包导致&#xff0c;所以在该包中的默认不能使用 解决 需额外在dependencies中添加 kotlin-reflect的编译&#xff0c; compile “org.jetbrains.kotlin:kotlin-reflect:$kotlin-version”

AWS Loft的数据库周

这是我的笔记&#xff1a; https://databaseweekoctober2019sf.splashthat.com AWS上的数据库&#xff1a;正确工作的正确工具 在许多此类谈话中&#xff0c;我并没有做过深刻的记录。 我正在关注重点。 PostgreSQL排在MySQL之后。 AWS上8种类型的数据库&#xff1a; 关系…

MockWebServer[45678] connection from null failed: java.net.SocketException

MockWebServer使用中的异常 MockWebServer: MockWebServer[45678] connection from null failed: java.net.SocketException: sendto failed: EBADF (Bad file number) java.io.IOException: unexpected end of stream on Connection Caused by: java.io.EOFException: \n n…

ExternalDocumentationLinkImpl(url=https://developer.android.com/reference/, packageListUrl=https://d

dokka 问题 java.lang.RuntimeException: Exception while loading package-list from ExternalDocumentationLinkImpl(urlhttps://developer.android.com/reference/, packageListUrlhttps://developer.android.com/reference/package-list) 原因 使用了下面这个任务定义…

IntellijIDEA插件编写-删除/插入/替换文档内容

错误 ERROR - plication.impl.ApplicationImpl - Assertion failed: Write2018-03-24 01:57:49,835 [ 138880] ERROR - plication.impl.ApplicationImpl - Assertion failed: Write access is allowed inside write-action only (see com.intellij.openapi.application.Appli…

jaxb_JAXB –新手的观点,第1部分

jaxb我知道你们中的很多人已经在想什么&#xff0c;所以让我们摆脱这个问题&#xff1a;“ JAXB&#xff1f; 如XML&#xff1f; 来吧&#xff0c;所有很棒的孩子都在使用JSON。” 关于XML与JSON的辩论以及许多促成它的论据都得到了很好的记录。 我不会花很多时间在这里重新整…

Log4j Bug –减慢您的应用程序

最近&#xff0c;我们正在对流行的SaaS应用程序进行故障排除。 该应用程序间歇性地减慢了速度。 要从问题中恢复&#xff0c;必须重新启动应用程序。 在高流量期间&#xff0c;此应用有时会变慢&#xff1b; 有时在交通繁忙时也是如此。 没有凝聚力模式。 这种应用程序变慢并重…