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");
}

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


输入值不能提交给模型,它们将存储在输入组件的局部值中。 即使我们按“ 取消”按钮,也不会清除这些本地值,并且在子序列请求期间将使用这些值。 为了防止这种行为,我们必须将弹出窗口的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

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

  1. 带有 HTML5 <dialog> Tag的原生弹出窗口对话框

    对话框和灯箱广泛用于网站和应用程序.在此之前,它们需要定制--使用一系列<div>来创建容器,设置对话框的 CSS 使其居中,并使用 Javascript 事件处理程序来显示/隐藏模式框. ...

  2. VB动态添加WebBrowser控件,并拦截弹出窗口(不用引用任何组件)

    WBCustomizer.dll 这个 1.注册::在开始菜单中输入RegSvr32    路径(WBCustomizer.dll文件所在的绝对路径),若果注册成功,会提示 2.引用 :在工程--&g ...

  3. 苹果怎么修改服务器密码,iPhone突然弹出窗口:要求输入/修改ID密码怎么办?

    如果遇到要求修改密码的弹窗,会不会吓一跳?这是正常现象,别动不动怀疑自己的 Apple ID 被盗或者手机存在风险哦,给你压压惊~ 这种弹窗发生在 iPhone 解锁进入桌面之后直接弹出提示的情况较为 ...

  4. JavaFX弹出窗口和消息对话框代码示例

    弹出窗口 弹窗类 package cn.zxl.AlertWindow;import javafx.geometry.Pos; import javafx.scene.Scene; import ja ...

  5. php 弹窗代码大全,PHP_asp.net弹出窗口代码大全,//关闭,父窗口弹出对话框,子窗 - phpStudy...

    asp.net弹出窗口代码大全 //关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write(""); //关闭,父窗口和子窗口都不弹出对话框,直接关闭 th ...

  6. ADF:弹出窗口,对话框和输入组件

    在本文中,当我们有一个af:popup包含af:dialog并在其中包含输入组件时,我想着重介绍一个非常常见的用例. 在实现此用例时,需要注意一些陷阱. 让我们考虑一个简单的示例: <af:po ...

  7. python win10 捕获 弹出窗口_[python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录...

    在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫. 那怎么解决这个问题呢? 本篇文章主要记录 ...

  8. js“弹出对话框”和“弹出窗口”详解

    JS中showModalDialog 详细使用 基本介绍:           showModalDialog()         (IE 4+ 支持)           showModelessD ...

  9. python中pygame增加对话框_在pygame中制作弹出窗口与pgu

    我在用pygame编写的游戏中添加了一些gui元素(带有按钮的对话框).我环顾四周寻找一个体面的GUI工具包,并以pgu结束.无论如何,我试图让它弹出一个对话框,它确实(有点),但它不关闭.在pyga ...

最新文章

  1. C++实现 (FFT)一维快速傅里叶变换
  2. solr java浏览器访问_solr解决访问安全
  3. Sublime Text报错please wait a bit whilePyV8 binary is being downloaded
  4. coursera访问不了
  5. linux java执行_linux下运行java
  6. 图像定位的优化、评价和应用简介
  7. 【数据库】MySql分割字符串
  8. 简单好用的Mac设置
  9. CSS:布局——左右两个DIV,左侧宽度固定,右侧占满剩余部分
  10. 随笔小杂记(四)——将语义分割标签转换为指定像素值
  11. 毕设题目:Matlab智能算法VRP(车辆路径规划)
  12. asp.net 安全
  13. 项目管理里面的十大知识领域
  14. mac pro词典无法使用问题
  15. python键盘控制_python实现键盘控制鼠标移动
  16. dabo(达泊西汀)
  17. mysql 校对规则作用_讲讲Mysql中的校对规则究竟是怎么一回事
  18. 基于猫眼票房数据的可视化分析
  19. 西门子S7-200 PLC下载
  20. Type 和 class 的区别

热门文章

  1. 2018/7/19-纪中某C组题【jzoj3461,jzoj3462,jzoj3463,jzoj3464】
  2. ssl1197-质数和分解【dp练习】
  3. 【做题记录】CF1451E2 Bitwise Queries (Hard Version)
  4. 2020 China Collegiate Programming Contest Qinhuangdao Site 补题部分
  5. [XSY3320] string (AC自动机,哈希,点分治)
  6. Spring Aop总结
  7. Java JVM总结
  8. vue组件自定义v-model
  9. jdk和cglib简单理解
  10. Spring MVC Boot Cloud 技术教程汇总