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

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

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

相关文章

关于codeforces加载慢

昨天cdx报名cf&#xff0c;打开网页10多分钟才交了、、、。 今天问了wxy&#xff0c;百度了一下&#xff0c;以前也搜过&#xff0c;然后就忘记了。 今天记一下。 1.右键单击开始按钮&#xff0c;打开资源管理器&#xff0c;在资源管理器的地址栏中填写“%SystemRoot%\System3…

ORM 开发环境之利器:MVC 中间件 FreeSql.AdminLTE

前言 这是一篇纯技术干货的分享文章&#xff0c;FreeSql 已经基本完成 .NETCore 最方便的 ORM 使命&#xff0c;我们正在筹备生态的建立&#xff0c;比如 ABP 中如何使用 FreeSql 的实现&#xff0c;需要各种各样的扩展包&#xff0c;好多好多工作量。有没有大神愿意无偿参与做…

Hadoop Ecosystem解决方案---数据仓库

个人总结的一套基于hadoop的海量数据挖掘的开源解决方案.BI系统:Pentahopentaho是开源的BI系统中做得算顶尖的了.提供的核心功能如下:报表功能: 可视化(client, web)的报表设计. 分析功能: 可以生成分析视图&#xff0c;作数据作动态分析. Dashboard功能: 可以定制动态图…

django中间件及中间件实现的登录验证

1.定义 一个用来处理Django的请求和响应的框架级别的钩子&#xff08;函数&#xff09;&#xff0c;相对比较轻量级&#xff0c;并且在全局上改变django的输入与输出&#xff08;使用需谨慎&#xff0c;否则影响性能&#xff09; 直白的说中间件就是帮助我们在视图函数执行之前…

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

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

用phpstudy配置网站遇到的一些问题

第一次是配置在我本机&#xff0c;总是连不上数据库&#xff0c;后来查看到mysql.ini配置文件里面端口号有一个不是3306&#xff0c;更改之后就好了。 第二次是配置在笔记本电脑上&#xff0c;安装的时候比较顺利&#xff0c;也就遇到80端口被占用还有缺少VC运行库的问题&#…

二进制和十进制的相互转换

十进制转二进制&#xff1a; 方法一&#xff1a;y…… 25 * x 24 * x 23 * x 22 * x 21 * x 20 * x&#xff0c;其中y是十进制数字&#xff0c;x是0或1。 方法二&#xff1a; 二进制转十进制&#xff1a; 10100125 * 1 24 * 0 23 * 1 22 * 0 21 * 0 20 * 141 更多专业前端知…

Teradata Expression 12 在Windows 2003上Connection Reset 问题的解决方法

Teradata Expression 12 安装在Windows 2003上&#xff08; 企业版 sp2&#xff09;&#xff0c;完全按照安装手册指导安装。安装过程一切顺利。完成后重启系统。通过Teradata Service Control启动一切正常。状态显示Teradata Running&#xff0c;打开session info ,可以看到一…

Hadoop开发工具简介

几天前&#xff0c; Apache Hadoop开发工具 &#xff08;又名HDT &#xff09;发布了。 这些项目旨在将插件引入eclipse中&#xff0c;以简化Hadoop平台上的开发。 该博客旨在概述HDT的一些重要功能。 单端点 该项目可以充当HDFS&#xff0c;Zookeeper和MR群集的单个端点。 您…

分布式理论之一:Paxos算法的通俗理解

https://www.cnblogs.com/esingchan/p/3917718.html转载于:https://www.cnblogs.com/JBLi/p/10732044.html

UML 面向对象分析与设计

面向对象方法以其超越传统方法的技术先进性越来越得到更多的重视&#xff0c;但技术的先进性不能完全代表一种新生事物的最后成功&#xff0c;还要看它是否能得到有效的推广。统一建模语言&#xff08;UML&#xff09;的产生为这种推广规定了一致的表示&#xff0c;诸多开发过程…

MVC 之var与dynamic

如果你用MVC写过程序&#xff0c;那么你应该知道ViewBag这个用于前后台的数据传递工具&#xff0c;那么你是否对ViewBag的用法感到过疑惑呢&#xff1f; ViewBag.Mode1lnew object();ViewBag.Model2new object();ViewBag.Model3new object();...... 我们知道&#xff0c;在使用…

使用Spring MVC时的常见错误

当我大约10年前开始我的职业生涯时&#xff0c;Struts MVC就是市场上的常态。 但是&#xff0c;多年来&#xff0c;我观察到Spring MVC逐渐流行起来。 鉴于Spring MVC与Spring容器的无缝集成以及它提供的灵活性和可扩展性&#xff0c;这对我来说并不奇怪。 从到目前为止的Spri…

CopyOnWriteArrayList

CopyOnWriteArrayList&#xff0c;add&#xff0c;引用赋值是原子操作吗&#xff1f; 引用类型的读写均是原子操作&#xff0c;https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.7&#xff0c;https://www.v2ex.com/t/280788 转载于:https://www.cnblogs…

Statement与PreparedStatement区别

1.性能区别 Statement statement conn.createStatement(); PreparedStatement preStatement conn.prepareStatement(sql); 执行的时候: ResultSet rSet statement.executeQuery(sql); ResultSet pSet preStatement.executeQuery(); 由上可以看出&#xff0c;PreparedState…

C++ operator操作符重载(++,--,-,+,())

C中,--操作符重载需要说明是(--)在操作数前面,还是在操作数后面,区别如下: 代码经过测试无误(起码我这里没问题^_^)Code1#include <iostream> 2#include <cstdlib> 3using namespace std; 4template<typename T> class A 5{ 6public: 7 A(): m_(0){ 8 …

CSS3-2

倒圆角 <!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>Document</title></head><body> <h1>圆角边框 —— border-radius IE9</h1> <!-- border-radius 是复合属性…

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

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

[ZJJOI2013]K大数查询 整体二分

[ZJJOI2013]K大数查询 链接 luogu 思路 整体二分。 代码 #include <bits/stdc.h> #define ll long long using namespace std; const ll _5e57; ll read() {ll x0,f1;char sgetchar();for(;s>9||s<0;sgetchar()) if(s-) f-1;for(;s>0&&s<9;sgetchar(…

javax.el.PropertyNotFoundException: Property [Xxxx] not found on type Xxx.xxx.xxxx.Xxxx]的解决办法...

当我将后台数据传递给jsp&#xff0c;用${requestScope.user.Id}取值时报错&#xff0c; 最后发现entity实体类的属性不能首字母大写然后再小写&#xff0c;例如 int Age&#xff1b;这个就不行&#xff0c;必须写成int age; 最后问题解决了 转载于:https://www.cnblogs.com/Th…