- 浏览: 150996 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (87)
- seam/jsf (22)
- java (24)
- spring (6)
- hibernate (2)
- Mysql (4)
- web (1)
- JMS (0)
- 计算机(computer) (1)
- linux (3)
- eclipse (4)
- Javascript (1)
- xstream (3)
- JPA (2)
- 汇编 (1)
- HttpClient (1)
- quartz (1)
- J2EE (2)
- EJB (1)
- restful web (1)
- maven (1)
- TTServer (3)
- restlet (0)
- jquery (0)
- Firebug (0)
- jquery Masonry+Infinite-Scroll (0)
- JACOB (0)
- elasticsearch (0)
最新评论
-
tuspark:
关于ApplicationContextAware的详细介绍, ...
ApplicationContextAware -
hc_face:
应该是 环境被初始化的时候,bean 也一并被初始化吧。先后顺 ...
ApplicationContextAware -
奇林醉:
有点明白了
Collections.unmodifiableList() -
tcking:
HashSet不关心迭代的次序,也就是说下一次的迭代次序可能就 ...
HashSet LinkedHashSet TreeSet -
yzhw:
我要去试试
seam前端提速
本章主要包括三方面内容:
· 发送 Ajax Request
· 实现 Partial-Page 更新
· 了解什么数据将会被 process
1. 发送 Ajax Request
1) 四个 RichFaces 控件可以发送 Ajax Request 并允许 Partial-Page 更新
• <a4j:commandLink>
• <a4j:commandButton>
• <a4j:support>
• <a4j:poll>
2) <a4j:commandLink> 与 <a4j:commandButton>
与标准的 <h:commandLink> 与 <h:commandButton> 非常相似,增加的功能:
• reRender 属性,用于指定哪些控件需要 Partial-Page 更新;
• 对于 Partial-Page 更新, action 方法的返回值应为 null 。 Response 将被用来更新 Browser 的 DOM 。
3) <a4j: support>
• <a4j: support> 应该作为标准 JSF 控件的直接子控件( Direct Child )来使用。
• 关键属性 event ,用来指定哪个 DHTML event 将会引发 Ajax Request 。(实际上, <a4j:commandLink> 与 <a4j:commandButton> 是使用了“ onClick ” DHTML event 来引发 Ajax Request 。
• 至于能够指定哪些 DHTML 事件,取决于父控件能够支持哪些。
• 当在页面上混合使用 <a4j: support> 和 JavaScript 代码时,有可能导致不确定的结果,因为 JavaScript 代码有可能比 <a4j: support> “抢占先机”。
• 可以同时组合使用多个 <a4j:support> 以分别应对不同的 DHTML event ,比如 onClick 、 onkeyup 、 onkeydown 等。
4) <a4j:poll>
• interval 指定多长时间向 Server 发送一次 Ajax Request ;
• enabled 是否启动自动发送 Ajax Request 功能;
• reRender 页面的哪些控件(部分)要被刷新;
将 <a4j:poll> 放置在一个独立的 form 里,这样在发送 Request 的时候,其他 form 里面的 Field 将不会被发送。
5) limitToList 属性
• 能够引发 Ajax Request 的四种控件都有 limitToList 这个属性;
• 当 limitToList 设为 true 的时候,只有当前控件的 reRender 里面的控件会被刷新;
• 即使 <a4j:outputPanel ajaxRendered=”true”> 也不会被刷新。
2. 实现 Partial-Page 更新
1) 两种方法:
• reRender 属性
• <a4j:outputPanel ajaxRendered=”true”>
2) 使用 reRender 属性
• 通常是逗号分隔的 ID 列表;
• 当 reRender 指向一个容器类控件的时候,该容器控件中的子控件也将被刷新;
• 接受 EL 表达式,如 #{profile.renderList} ,以实现 reRender 控件列表的动态刷新;
• 接受 4 种格式: Set 、 List 、 String[] 、 String (逗号分隔 ID 列表)。
【注意】
EL 表达式只在 Render Response 阶段之前被解析,也就意味着,可以在 action 或 actionListener 里更新 reRender 控件列表。
通常情况下,页面里的 EL 表达式应该在 Update Model Value 阶段被解析( Update Model Value 阶段在 Invoke Application 阶段之前)。而此处, EL 表达式只在 Render Response 阶段之前被解析( Render Response 阶段在 Invoke Application 阶段之后),也就留给我们机会在 Invoke Application 阶段的 action 或 actionListener 里对 reRender 控件列表进行修改。如修改 #{profile.renderList} 里面的的 renderList 集合对象。
3) 使用 <a4j:outputPanel>
• <a4j:outputPanel> 与 <h:panelGroup> 很相似,是一个容器类的控件;它的 ID 也可以被添加到其他控件的 reRender 属性里。
• 当 <a4j:outputPanel> 的 ajaxRendered 属性被设为 true ,则其内部的控件总会被刷新。
3. 了解什么数据将会被 process
1) 使用 <a4j:region>
• 可以使用 <a4j:region> 来指定哪些控件将被 process ( Process 包括解码 decoding 、转换 conversion 、验证 validation 、更新模型值 model updating );
• 请注意,整个 Form 还是会被提交,只是在 region 中的控件会被 process ;
• 如果未指定 region ,则整个页面将作为一个 region ,也就意味着整个 form 被 process ;
• 对于嵌套 region ,当外部 region 里的 ajax 控件引发 Request 的时候,内部 region 里的控件也将一起被 process ;而当内部 region 里的 ajax 控件引发 Request 的时候,外部 region 里的控件则不会随之一起 process ;
【注意】切勿将 process 和 reRender 相混淆
<a4j:region> 只是表明哪些控件被 process (解码 decoding 、转换 conversion 、验证 validation 、更新模型值 model updating );而 Partial-Page 刷新还是得靠 reRender 和 <a4j:outputPanel> 负责。两者之间,概念不同。
2) 使用 ajaxSingle 属性
• 将 ajaxSingle 属性设为 true ,等同于将单个控件包装在 <a4j:region> 中。如:
<h:inputText value="#{profile.age}">
<a4j:support event="onblur" reRender="userInfo" ajaxSingle="true">
</h:inputText>
等同于
<a4j:region>
<h:inputText value=”#{profile.age}”>
<a4j:support event=”onblur” reRender=”userInfo”>
</h:inputText>
</a4j:region>
• 对于单独的 <a4j:commandButton> 或 <a4j:commandLink> , ajaxSingle 也可以设为 true ,也就是只有这个控件被 process 。
3) 使用 process 属性
• process 属性用于设置 region 外的控件随 region 内的控件一起 process ;
• 接受 4 种格式: Set 、 List 、 String[] 、 String (逗号分隔 ID 列表)。
from:http://blog.csdn.net/gengv/archive/2009/06/05/4246420.aspx
· 发送 Ajax Request
· 实现 Partial-Page 更新
· 了解什么数据将会被 process
1. 发送 Ajax Request
1) 四个 RichFaces 控件可以发送 Ajax Request 并允许 Partial-Page 更新
• <a4j:commandLink>
• <a4j:commandButton>
• <a4j:support>
• <a4j:poll>
2) <a4j:commandLink> 与 <a4j:commandButton>
与标准的 <h:commandLink> 与 <h:commandButton> 非常相似,增加的功能:
• reRender 属性,用于指定哪些控件需要 Partial-Page 更新;
• 对于 Partial-Page 更新, action 方法的返回值应为 null 。 Response 将被用来更新 Browser 的 DOM 。
3) <a4j: support>
• <a4j: support> 应该作为标准 JSF 控件的直接子控件( Direct Child )来使用。
• 关键属性 event ,用来指定哪个 DHTML event 将会引发 Ajax Request 。(实际上, <a4j:commandLink> 与 <a4j:commandButton> 是使用了“ onClick ” DHTML event 来引发 Ajax Request 。
• 至于能够指定哪些 DHTML 事件,取决于父控件能够支持哪些。
• 当在页面上混合使用 <a4j: support> 和 JavaScript 代码时,有可能导致不确定的结果,因为 JavaScript 代码有可能比 <a4j: support> “抢占先机”。
• 可以同时组合使用多个 <a4j:support> 以分别应对不同的 DHTML event ,比如 onClick 、 onkeyup 、 onkeydown 等。
4) <a4j:poll>
• interval 指定多长时间向 Server 发送一次 Ajax Request ;
• enabled 是否启动自动发送 Ajax Request 功能;
• reRender 页面的哪些控件(部分)要被刷新;
将 <a4j:poll> 放置在一个独立的 form 里,这样在发送 Request 的时候,其他 form 里面的 Field 将不会被发送。
5) limitToList 属性
• 能够引发 Ajax Request 的四种控件都有 limitToList 这个属性;
• 当 limitToList 设为 true 的时候,只有当前控件的 reRender 里面的控件会被刷新;
• 即使 <a4j:outputPanel ajaxRendered=”true”> 也不会被刷新。
2. 实现 Partial-Page 更新
1) 两种方法:
• reRender 属性
• <a4j:outputPanel ajaxRendered=”true”>
2) 使用 reRender 属性
• 通常是逗号分隔的 ID 列表;
• 当 reRender 指向一个容器类控件的时候,该容器控件中的子控件也将被刷新;
• 接受 EL 表达式,如 #{profile.renderList} ,以实现 reRender 控件列表的动态刷新;
• 接受 4 种格式: Set 、 List 、 String[] 、 String (逗号分隔 ID 列表)。
【注意】
EL 表达式只在 Render Response 阶段之前被解析,也就意味着,可以在 action 或 actionListener 里更新 reRender 控件列表。
通常情况下,页面里的 EL 表达式应该在 Update Model Value 阶段被解析( Update Model Value 阶段在 Invoke Application 阶段之前)。而此处, EL 表达式只在 Render Response 阶段之前被解析( Render Response 阶段在 Invoke Application 阶段之后),也就留给我们机会在 Invoke Application 阶段的 action 或 actionListener 里对 reRender 控件列表进行修改。如修改 #{profile.renderList} 里面的的 renderList 集合对象。
3) 使用 <a4j:outputPanel>
• <a4j:outputPanel> 与 <h:panelGroup> 很相似,是一个容器类的控件;它的 ID 也可以被添加到其他控件的 reRender 属性里。
• 当 <a4j:outputPanel> 的 ajaxRendered 属性被设为 true ,则其内部的控件总会被刷新。
3. 了解什么数据将会被 process
1) 使用 <a4j:region>
• 可以使用 <a4j:region> 来指定哪些控件将被 process ( Process 包括解码 decoding 、转换 conversion 、验证 validation 、更新模型值 model updating );
• 请注意,整个 Form 还是会被提交,只是在 region 中的控件会被 process ;
• 如果未指定 region ,则整个页面将作为一个 region ,也就意味着整个 form 被 process ;
• 对于嵌套 region ,当外部 region 里的 ajax 控件引发 Request 的时候,内部 region 里的控件也将一起被 process ;而当内部 region 里的 ajax 控件引发 Request 的时候,外部 region 里的控件则不会随之一起 process ;
【注意】切勿将 process 和 reRender 相混淆
<a4j:region> 只是表明哪些控件被 process (解码 decoding 、转换 conversion 、验证 validation 、更新模型值 model updating );而 Partial-Page 刷新还是得靠 reRender 和 <a4j:outputPanel> 负责。两者之间,概念不同。
2) 使用 ajaxSingle 属性
• 将 ajaxSingle 属性设为 true ,等同于将单个控件包装在 <a4j:region> 中。如:
<h:inputText value="#{profile.age}">
<a4j:support event="onblur" reRender="userInfo" ajaxSingle="true">
</h:inputText>
等同于
<a4j:region>
<h:inputText value=”#{profile.age}”>
<a4j:support event=”onblur” reRender=”userInfo”>
</h:inputText>
</a4j:region>
• 对于单独的 <a4j:commandButton> 或 <a4j:commandLink> , ajaxSingle 也可以设为 true ,也就是只有这个控件被 process 。
3) 使用 process 属性
• process 属性用于设置 region 外的控件随 region 内的控件一起 process ;
• 接受 4 种格式: Set 、 List 、 String[] 、 String (逗号分隔 ID 列表)。
from:http://blog.csdn.net/gengv/archive/2009/06/05/4246420.aspx
发表评论
-
seam前端提速
2010-09-08 13:11 1389Seam使用了richfaces做为jsf ... -
seam topic
2010-08-25 16:58 2218Forum: Seam Users Forum ListTop ... -
maven 中使用jetty 改端口号
2010-08-04 13:52 1405jetty 使用时,如果出现 address already ... -
seam空格
2010-07-23 09:59 712seam空格:&nbps;没用 ,要使用 ... -
null value seam
2010-07-23 09:33 533因为给model添加一个double类型的字段(数据库已有一些 ... -
Seam el 中使用 map
2010-06-29 15:23 1295一直以为在el里不能用map,今天发现原来可以... @na ... -
seam pdf The document has no pages
2010-06-28 13:31 1773用seam 中的pdf功能时 出现The document h ... -
JSF多对多增加
2010-06-25 17:04 933多对多关系时 person (n-n) work (perso ... -
JSF Chapter04
2010-06-24 13:18 1529. 用队列控制 Event Traffic ... -
JSF Chapter11
2010-06-24 13:14 8731. 使用内建的 Skins 1) 基 ... -
JSF Chapter10
2010-06-24 13:13 1196. <rich:scrollableDataT ... -
JSF Chapter09
2010-06-24 11:35 10631. <rich:dropDownM ... -
JSF Chapter08
2010-06-24 11:34 13231. <rich:pickList> ... -
JSF Chapter07
2010-06-24 11:34 15891. 常用的 dataTable 类的控件有: l ... -
JSF Chapter06
2010-06-24 11:20 1751. <rich:panel> 1) ... -
JSF Chapter05
2010-06-24 11:18 16821. a4j: 提供了页面级的 Ajax 支持,也 ... -
JSF Chapter02
2010-06-24 11:13 9651. 配置 RichFaces 1) ... -
JSF Chapter01
2010-06-24 11:12 9261. JSF’s View = UICompone ... -
JSF Chapter04(频繁调用控件)
2010-06-24 11:06 13611. <!-- [end ... -
Property '****' is not writable on type
2010-04-28 22:20 1123再用seam+jsf开发的时候冒出:***Edit.xhtml ...
相关推荐
资源名称:精通JSF—基于EJBHibernateSpring开发实践视频教程资源目录:【】chapter13_code【】Jsf第七章【】JSF第二章【】Jsf第五章【】Jsf第八章【】Jsf第六章【】Jsf第十三章【】Jsf第十五章【】Jsf第十六章【】...
首先,我们可以看到文件名中有`chapter9_details.html`,这可能是一个关于第九章详细内容的HTML文档,通常这样的文件会包含讲解和示例代码的解释,可能涵盖了JSF组件的使用、事件处理、转换和验证等关键主题。...
在"chapter16"这个文件中,可能涵盖了JSF的高级主题,例如: - **自定义组件**:如果开发者需要扩展JSF的默认组件库,可以创建自定义组件,这涉及到UIComponent子类的继承和渲染过程的理解。 - **导航管理**:JSF的...
下面我们将详细探讨JSF的核心概念、关键组件以及`build.properties.sample`和`chapter05`可能包含的内容。 **JSF框架概述:** JSF是Java EE的一部分,旨在简化Web开发,通过提供UI组件、事件处理和数据绑定等功能来...
书本源码中的各个章节代码文件,如chapter3_code到chapter10_code,分别对应书中各章节的实例代码。这些代码实例通常会展示如何在实际项目中应用JSF、EJB、Hibernate和Spring进行整合,包括但不限于以下知识点: 1....
Chapter 3: JSF Component Libraries Chapter 4: Interacting with Databases through the Java Persistence API Chapter 5: Implementing the Business Tier with Session Beans Chapter 6: Contexts and ...
在本章"使用JSP开发Web应用...在后续章节中,你还会接触到更多高级主题,如EL(Expression Language)、JSF(JavaServer Faces)以及现代Web框架如Spring MVC的使用。持续学习和实践,将使你成为一位熟练的Web开发者。