`
stenlylee
  • 浏览: 260133 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用JSF、Ajax与Seam开发Portlets 2/3

阅读更多

在上一篇文章的基础上,本文介绍结合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 电子书

    Seam、JSF、RichFaces 和 Ajax4jsf 是四个重要的Java Web开发框架和技术,它们在构建现代、交互式Web应用程序中发挥着关键作用。让我们深入探讨这些技术及其结合使用时的知识点。 **1. Seam** Seam是一个开源的Java...

    JSF项目中seam的配置

    Seam 是一个强大的Java EE框架,它主要用于简化JavaServer Faces (JSF)应用程序的开发,同时提供了对EJB 3、CDI(Contexts and Dependency Injection)、Ajax等技术的集成。在JSF项目中配置Seam,可以充分利用其优势...

    jsf+seam+jpa实例

    **JSF、Seam与JPA整合实例详解** 在现代Web应用开发中,JavaServer Faces (JSF)、Seam框架和Java Persistence API (JPA)是三个关键的技术组件。本实例将深入探讨如何利用这三者进行联合开发,帮助开发者实现高效、...

    Beginning JSF2 APIs and JBoss Seam

    ### 关于《Beginning JSF2 APIs and JBoss Seam》的知识点总结 #### 一、书籍简介与背景 《Beginning JSF2 APIs and JBoss Seam》是一本深入介绍JavaServer Faces 2(简称JSF2)及其相关API以及JBoss Seam框架的...

    seam,jsf,ajax4jsf的大全资料集合

    Seam、JSF(JavaServer Faces)和Ajax4jsf是Java Web开发中重要的技术框架,它们在构建富互联网应用程序(Rich Internet Applications, RIA)时发挥着关键作用。这里,我们将深入探讨这三个技术的核心概念、特点以及...

    seam+jsf+richfaces+ajax4jsf打包了

    这个压缩包集合了四个重要的Java Web开发框架,它们分别是Seam、JSF(JavaServer Faces)、RichFaces以及Ajax4jsf。这些技术在构建现代、交互性强的Web应用程序时发挥着关键作用。 **Seam** Seam是一款开源的集成...

    ajax4jsf实例

    它提供了多种预定义的Ajax行为和组件,使得开发人员能够通过声明式的方式在JSF页面上添加Ajax特性,提高用户体验。 ### 2. Ajax4JSF的核心特性 - **Ajax事件处理**:Ajax4JSF允许开发者定义和处理各种Ajax事件,...

    JSF全套(JSF入门教+ LIB+ Ajax4JSF使用手册 )

    2. **JSF标签**:JSF的UI组件是以标签的形式在JSP页面中使用的,这些标签对应于服务器端的组件。学习JSF标签,你需要理解每个标签的用途,如`h:inputText`用于文本输入,`h:commandButton`用于触发动作,以及如何...

    ajax4jsf使用中文手册

    这份中文手册详细介绍了如何将Ajax功能与JSF结合使用,使得Web应用程序更为高效且用户友好。 ### 1. Ajax4JSF简介 Ajax4JSF是RichFaces项目的一部分,旨在简化JSF应用中的Ajax开发。它通过在JSF组件上添加Ajax行为...

    ajax4jsf-demo

    这个"ajax4jsf-demo"项目是一个演示了如何在实际应用中利用Ajax4JSF库进行开发的例子。 **1. Ajax 技术** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术...

    Ajax4jsf 用户手册

    指南可能包含了在Eclipse、NetBeans或其他常用集成开发环境(IDE)中使用Ajax4jsf的步骤。 ### 8. **Exadel VCP和Ajax4jsf** Exadel VCP可能是指Exadel的版本控制平台,可能与Ajax4jsf的版本管理和发布有关。 ### 9...

    jsf seam hibernate 初学者练习

    **JSF、Seam与Hibernate简介** JSF(JavaServer Faces)是Java平台上的一个用于构建用户界面的组件模型框架,它提供了一种声明式的方式来创建动态Web应用程序。JSF的核心概念是组件,这些组件可以组合成用户界面,...

    ajax4jsf.zip

    3. **Ajax请求和响应**: 使用Ajax4JSF,开发者可以指定Ajax请求的目标处理方法,以及响应返回后更新的DOM元素。这使得页面的交互更加流畅,减少了不必要的页面刷新。 4. **JSF生命周期集成**: Ajax4JSF与JSF的完整...

    jsf1.2 source code

    - **数据绑定**:JSF使用EL(Expression Language)将组件属性与模型数据绑定,简化了数据的获取和设置。 - **事件处理**:JSF支持事件模型,允许组件触发和监听自定义事件。 - **国际化与本地化**:JSF内置了支持...

    JSF + ajax入门程序,有注释很多,适用JSF新手

    JSF与Ajax的结合使得开发人员能够构建高效、互动的Web应用。通过理解和掌握Ajax在JSF中的应用,开发者可以创建出更加现代、响应式的用户界面,提升用户满意度。在实际项目中,根据需求选择合适的Ajax库和最佳实践,...

    jboss-ajax4jsf-1.1.1-src

    【标题】"jboss-ajax4jsf-1.1.1-src" 是一个开源项目,主要涉及Ajax4jsf框架的源代码版本,版本号为1.1.1。Ajax4jsf是针对JavaServer Faces (JSF) 技术的一个扩展,它允许开发者在JSF应用中无缝集成Ajax功能,提升...

    JSF + AJAX开发小例

    **JSF(Apache MyFaces)与AJAX的融合开发详解** JavaServer Faces(JSF)是Java平台上的一个用于构建Web应用程序的MVC(Model-View-Controller)框架。它提供了一种组件化的方式,使得开发者可以更方便地创建用户...

    ajax 4jsf用户指南中文版

    - 设计理念:展示Ajax与JSF结合的优势,如Action监听器、值更改监听器等。 - 可应用于现有JSF项目中,通过组件库添加Ajax功能。 #### 二、开始使用Ajax4jsf - **环境需求**: - JDK1.4或更高版本。 - 任何JSF...

    如何使用JSF和Ajax制作强大的网络组建

    3. **Ajax请求和响应**:如何使用`&lt;f:ajax&gt;`标签或者JSF的Ajax API来发送异步请求,并处理返回的数据,更新页面的部分区域。 4. **数据绑定和转换**:在使用Ajax时,如何进行数据绑定和转换,确保前端输入的数据能...

Global site tag (gtag.js) - Google Analytics