在上一篇文章的基础上,本文介绍结合RichFaces的相关知识。
1、执行Maven命令:
mvn archetype:generate
-DarchetypeGroupId=org.jboss.portletbridge.archetypes
-DarchetypeArtifactId=richfaces-basic -DarchetypeVersion=1.0.0.B3
-DgroupId=org.my.project -DartifactId=richfacesproject
-DarchetypeRepository=http://repository.jboss.org/maven2/
-Dversion=1.0.0.B3
2、web.xml
<context-param>
<param-name>org.richfaces.LoadStyleStrategy</param-name>
<param-value>NONE</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.LoadScriptStrategy</param-name>
<param-value>NONE</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.RESOURCE_URI_PREFIX</param-name>
<param-value>rfRes</param-value>
</context-param>
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>FacesServlet</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
以上配置有部分是为了让RichFaces不要在每个portlet加载的时候都去加载一边CSS和JS文件,在Portal页面加载的时候加载一边就行了。
3、jboss-portlet.xml
<portlet>
<portlet-name>ajaxPortlet</portlet-name>
<header-content>
<script src="/faces/rfRes/org/ajax4jsf/framework.pack.js" type="text/javascript"></script>
<script src="/faces/rfRes/org/richfaces/ui.pack.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="/faces/rfRes/org/richfaces/skin.xcss"/>
</header-content>
</portlet>
这里可以看见,rfRes就是web.xml中出现过的RESOURCE_URI_PREFIX
4、运行demo程序
与上一篇文章基本相同。
mvn install cargo:start
-Plocal-portal
-DJBOSS_ZIP_HOME=/path_to_bundle_zip/jboss-
portal-2.7.0.B1-bundled.zip
-DJBOSS_HOME_DIR=jboss-portal-2.7.0.B1-
bundled/jboss-portal-2.7.0.B1
别忘了将path_to_bundle_zip改成你的JBoss AS的地址
然后进入刚创建的richfacesproject项目根目录下,运行以下命令:
mvn cargo:deploy
-Plocal-portal
-DJBOSS_ZIP_HOME=/path_to_bundle_zip/jboss-
portal-2.7.0.B1-bundled.zip
-DJBOSS_HOME_DIR=jboss-portal-2.7.0.B1-bundled/jboss-
portal-2.7.0.B1
然后就可以运行JBoss AS,通过地址http://localhost:8080/portal/portal/default/RichFacesEchoPortlet浏览demo项目的效果了。
默认情况下,portlet中的Ajax请求是无法获得Portal Session中的数据的,我们需要实现一个方法来做到这一点(http://blog.jboss-portal.org/2007/11/portlet-window-data-scoping.html),最终,你想要存储在Portal Session中的对象为'javax.portlet.p.XYZ?YourObject',其中XYZ为portlet的window ID,YourObject就是你存储的对象。
获得界面中的windowID或者scopeID,你可以使用以下代码:
#{facesContext.externalContext.sessionMap['org.jboss.portletbridge.WINDOW_ID_RETRIVER'].windowID}
#{facesContext.externalContext.sessionMap['org.jboss.portletbridge.WINDOW_ID_RETRIVER'].scopeId}
在以下情况下你可能会想要获得Portal Session中的对象:
- 使用Ajax进行登录验证
- 动态生成网站资源,例如JS、CSS等
所有RichFaces的组件演示,可以再这里下载到。
演示效果图:
- 大小: 31.1 KB
分享到:
相关推荐
Seam、JSF、RichFaces 和 Ajax4jsf 是四个重要的Java Web开发框架和技术,它们在构建现代、交互式Web应用程序中发挥着关键作用。让我们深入探讨这些技术及其结合使用时的知识点。 **1. Seam** Seam是一个开源的Java...
Seam 是一个强大的Java EE框架,它主要用于简化JavaServer Faces (JSF)应用程序的开发,同时提供了对EJB 3、CDI(Contexts and Dependency Injection)、Ajax等技术的集成。在JSF项目中配置Seam,可以充分利用其优势...
**JSF、Seam与JPA整合实例详解** 在现代Web应用开发中,JavaServer Faces (JSF)、Seam框架和Java Persistence API (JPA)是三个关键的技术组件。本实例将深入探讨如何利用这三者进行联合开发,帮助开发者实现高效、...
### 关于《Beginning JSF2 APIs and JBoss Seam》的知识点总结 #### 一、书籍简介与背景 《Beginning JSF2 APIs and JBoss Seam》是一本深入介绍JavaServer Faces 2(简称JSF2)及其相关API以及JBoss Seam框架的...
Seam、JSF(JavaServer Faces)和Ajax4jsf是Java Web开发中重要的技术框架,它们在构建富互联网应用程序(Rich Internet Applications, RIA)时发挥着关键作用。这里,我们将深入探讨这三个技术的核心概念、特点以及...
这个压缩包集合了四个重要的Java Web开发框架,它们分别是Seam、JSF(JavaServer Faces)、RichFaces以及Ajax4jsf。这些技术在构建现代、交互性强的Web应用程序时发挥着关键作用。 **Seam** Seam是一款开源的集成...
它提供了多种预定义的Ajax行为和组件,使得开发人员能够通过声明式的方式在JSF页面上添加Ajax特性,提高用户体验。 ### 2. Ajax4JSF的核心特性 - **Ajax事件处理**:Ajax4JSF允许开发者定义和处理各种Ajax事件,...
2. **JSF标签**:JSF的UI组件是以标签的形式在JSP页面中使用的,这些标签对应于服务器端的组件。学习JSF标签,你需要理解每个标签的用途,如`h:inputText`用于文本输入,`h:commandButton`用于触发动作,以及如何...
这份中文手册详细介绍了如何将Ajax功能与JSF结合使用,使得Web应用程序更为高效且用户友好。 ### 1. Ajax4JSF简介 Ajax4JSF是RichFaces项目的一部分,旨在简化JSF应用中的Ajax开发。它通过在JSF组件上添加Ajax行为...
这个"ajax4jsf-demo"项目是一个演示了如何在实际应用中利用Ajax4JSF库进行开发的例子。 **1. Ajax 技术** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术...
指南可能包含了在Eclipse、NetBeans或其他常用集成开发环境(IDE)中使用Ajax4jsf的步骤。 ### 8. **Exadel VCP和Ajax4jsf** Exadel VCP可能是指Exadel的版本控制平台,可能与Ajax4jsf的版本管理和发布有关。 ### 9...
**JSF、Seam与Hibernate简介** JSF(JavaServer Faces)是Java平台上的一个用于构建用户界面的组件模型框架,它提供了一种声明式的方式来创建动态Web应用程序。JSF的核心概念是组件,这些组件可以组合成用户界面,...
3. **Ajax请求和响应**: 使用Ajax4JSF,开发者可以指定Ajax请求的目标处理方法,以及响应返回后更新的DOM元素。这使得页面的交互更加流畅,减少了不必要的页面刷新。 4. **JSF生命周期集成**: Ajax4JSF与JSF的完整...
- **数据绑定**:JSF使用EL(Expression Language)将组件属性与模型数据绑定,简化了数据的获取和设置。 - **事件处理**:JSF支持事件模型,允许组件触发和监听自定义事件。 - **国际化与本地化**:JSF内置了支持...
JSF与Ajax的结合使得开发人员能够构建高效、互动的Web应用。通过理解和掌握Ajax在JSF中的应用,开发者可以创建出更加现代、响应式的用户界面,提升用户满意度。在实际项目中,根据需求选择合适的Ajax库和最佳实践,...
【标题】"jboss-ajax4jsf-1.1.1-src" 是一个开源项目,主要涉及Ajax4jsf框架的源代码版本,版本号为1.1.1。Ajax4jsf是针对JavaServer Faces (JSF) 技术的一个扩展,它允许开发者在JSF应用中无缝集成Ajax功能,提升...
**JSF(Apache MyFaces)与AJAX的融合开发详解** JavaServer Faces(JSF)是Java平台上的一个用于构建Web应用程序的MVC(Model-View-Controller)框架。它提供了一种组件化的方式,使得开发者可以更方便地创建用户...
- 设计理念:展示Ajax与JSF结合的优势,如Action监听器、值更改监听器等。 - 可应用于现有JSF项目中,通过组件库添加Ajax功能。 #### 二、开始使用Ajax4jsf - **环境需求**: - JDK1.4或更高版本。 - 任何JSF...
3. **Ajax请求和响应**:如何使用`<f:ajax>`标签或者JSF的Ajax API来发送异步请求,并处理返回的数据,更新页面的部分区域。 4. **数据绑定和转换**:在使用Ajax时,如何进行数据绑定和转换,确保前端输入的数据能...