`

richface 皮肤

    博客分类:
  • web
阅读更多

一、绪

richface默认提供了8套皮肤(plain emeraldTown blueSky wine japanCherry ruby classic deepMarine),位于richfaces-impl包的META-INF\skins目录下:

 

另外提供了3个可选皮肤(laguna darkX glass)分别以独立jar包发布。

 

二、动态变换皮肤

richfaces允许用户在运行期,动态设置皮肤。其原理可以通过一个例子一目了然。

 

web.xml配置动态皮肤,其中的skinBean是MBean,见下文。

    <context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>#{skinBean.skin}</param-value>
    </context-param>

    <context-param>
        <param-name>org.richfaces.CONTROL_SKINNING</param-name>
        <param-value>enable</param-value>
    </context-param>

 

faces-config.xml配置MBean。此步骤为可选,如果你使用JSF2.0中的inject,无需使用配置文件,即可管理MBean。

    <managed-bean>
        <managed-bean-name>skinBean</managed-bean-name>
        <managed-bean-class>mars.jsf.test.SkinBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>skin</property-name>
            <value>blueSky</value>
        </managed-property>
    </managed-bean>

MBean很简单,猜都猜得到。

package mars.jsf.test;

public class SkinBean {

    private String skin;

    public String getSkin() {
        return skin;
    }

    public void setSkin(String skin) {
        this.skin = skin;
    }
}
 

xhtml/jsf/jsp代码如下,你可以把它加入你的页面中。

<rich:tabPanel>
<rich:tab label="Change the Skin">
                <h:panelGrid columns="1">
                    <h:selectOneListbox id="select" value="#{skinBean.skin}" onchange="submit()">
                        <f:selectItem itemLabel="plain" itemValue="plain" />
                        <f:selectItem itemLabel="emeraldTown" itemValue="emeraldTown" />
                        <f:selectItem itemLabel="blueSky" itemValue="blueSky" />
                        <f:selectItem itemLabel="wine" itemValue="wine" />
                        <f:selectItem itemLabel="japanCherry" itemValue="japanCherry" />
                        <f:selectItem itemLabel="ruby" itemValue="ruby" />
                        <f:selectItem itemLabel="classic" itemValue="classic" />
                        <f:selectItem itemLabel="deepMarine" itemValue="deepMarine" />
                        <f:selectItem itemLabel="_laguna" itemValue="laguna" />
                        <f:selectItem itemLabel="_darkX" itemValue="darkX" />
                        <f:selectItem itemLabel="_glassX" itemValue="glassX" />
                    </h:selectOneListbox>
                </h:panelGrid>
</rich:tab>
</rich:tabPanel>

运行期,页面对皮肤的动态改变,通过MBean通知给richfaces,richfaces将皮肤的值赋给org.richfaces.SKIN,以达到更换皮肤的目的。

 

三、自定义皮肤

自定义皮肤的目的是同一管理整个应用的控件效果,如果你的局部需要特殊的效果,还是不要忘记css。首先说,richfaces自定义皮肤很简单。

如上文所述,皮肤的配置文件放在richfaces-impl包的META-INF\skins目录下。我们最初的尝试是拷贝其中的一个到应用的源代码中,并更名。我的示例中是:

testFacelets\JavaSource\iviewSkin.skin.properties --注意:请保持后缀名。

然后指定web.xml中的皮肤为iviewSkin即可。

<managed-bean>
        <managed-bean-name>skinBean</managed-bean-name>
        <managed-bean-class>mars.jsf.test.SkinBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>skin</property-name>
            <value>iviewSkin</value>
        </managed-property>
    </managed-bean>
分享到:
评论

相关推荐

    richface 官方手册

    Richface是基于Java Server Faces (JSF) 技术的一种框架,提供了丰富的组件库以及强大的皮肤支持能力,旨在简化Web应用程序的开发过程。此官方手册主要介绍了如何使用Richface进行开发,并提供了一系列的指南帮助...

    richface标签.doc

    ### RichFaces 标签知识点详解 #### 一、RichFaces 概述 RichFaces 是一款基于 JavaServer Faces(JSF)框架的组件库,提供了丰富的客户端 Ajax 支持及多种 UI 组件,使得开发者能够轻松地创建出具有高度交互性的 ...

    richface fileupload jar包

    "richface fileupload jar包" 指的是 RichFaces 框架中的文件上传功能相关的 Java Archive (JAR) 文件。RichFaces 是一个基于 JavaServer Faces (JSF) 技术的开源组件库,它提供了丰富的用户界面组件和事件处理机制...

    Richface实现服务器端分页Demo

    在本文中,我们将深入探讨如何使用Richface框架在服务器端实现分页功能。Richface是一个强大的AJAX组件库,它扩展了JavaServer Faces (JSF) 应用程序的功能,提供了一套丰富的用户界面组件和行为。这个"Richface实现...

    richface4.2

    **富客户端框架RichFaces 4.2.3.Final详解** 富客户端框架(Rich Client Framework)是用于构建具有丰富交互性和动态用户体验的Web应用程序的技术。其中,RichFaces是一个基于JavaServer Faces (JSF) 技术的开源组件...

    richface and jsf 源代码

    richface,jsf源码。相当不错的资料。特别是richface.里面有不错的例子。放到tomcat下可以直接运行啊。

    richface的完整demo,对于在学习和正在使用该开源东东的兄弟姐妹们又很到的帮助,值得一用 ... MyEclipse6.0+SQL2000开发简单的通讯录系统 · javascript教程+例子 ...

    【标题】中的“richface”是一个重要的关键词,它是指一个开放源代码的Java库,用于构建富客户端界面,尤其在企业级应用中广泛使用。RichFaces提供了丰富的组件库,能够帮助开发者创建高度交互性和视觉吸引力的用户...

    seam:在IE8中部分richface组件不能兼容的解决办法

    seam:在IE8中部分richface组件不能兼容的解决办法

    richface4开发必需cssparset.jar

    richfaces开发必需的样式解析jar包

    jsf2.0新特性及richface优化总结

    JSF 2.0 是JavaServer Faces框架的一个重要版本,引入了许多新特性和改进,以提升开发效率和应用性能。RichFaces是一个流行的JSF组件库,提供了丰富的UI组件和Ajax功能。以下是对JSF 2.0新特性和RichFaces优化的一些...

    jsf_richface

    **JSF (JavaServer Faces)** 是一种用于构建用户界面的Java技术,主要用于Web应用程序开发。它提供了一种声明式的方式来构建用户界面,允许开发者通过组件模型、事件处理和数据绑定来实现页面逻辑。...

    Richfaces Live Demo 源代码完整版

    5. **Resource Library**: RichFaces资源库包含组件的皮肤和主题。开发者可以通过修改这些资源来自定义组件的视觉样式。 6. **Event Handling and Ajax Interactions**: RichFaces的强大之处在于其Ajax支持,允许...

    richfaces demo 3.3

    richfaces Demo 最新版3.3下载,直接放在tomcat上即可运行,访问网址:http://localhost:8080/richfaces-demo-3.3.0.GA-tomcat6

    richfaces livedemo 3.3最新Eclipse工程

    3. **皮肤和主题**:RichFaces允许开发者自定义组件的外观和风格,通过CSS和皮肤机制,可以轻松调整应用的整体视觉效果。 4. **事件处理**:RichFaces支持JSF的生命周期事件,包括初始化、提交、验证等,并提供了...

    JSF+RichFaces(Ajax4jsf)框架示例

    **JSF+RichFaces(Ajax4jsf)框架示例** JSF(JavaServer Faces)是一种用于构建Web应用程序的Java标准框架,它提供了一种组件化的方式来开发用户界面。JSF的核心是UI组件模型,允许开发者使用声明式编程来创建交互式...

    RichFaces_3.3.3标签库手册

    《RichFaces 3.3.3 标签库手册》是针对富客户端开发的重要参考资料,主要涵盖RichFaces组件库在3.3.3版本中的各种功能标签及其使用方法。... RichFaces是一个开源的JSF扩展库,它极大地丰富了JSF的应用场景,使得...

    richfaces-ui-3.2.0.GA

    4. **皮肤和主题**:RichFaces 允许自定义和扩展皮肤,以改变组件的外观和感觉,适应不同的设计需求。 5. **事件和监听器**:RichFaces 的组件支持 JSF 事件和监听器,允许开发者在特定的生命周期阶段执行自定义...

    Practical RichFaces, 2nd Edition

    - **第13章:皮肤** - 讲解了如何自定义组件外观以匹配特定的设计要求。 - **第14章:RichFaces CDK:构建自定义组件** - 教授如何利用RichFaces组件开发工具包(CDK)来开发自己的组件。 #### 五、深入理解核心概念 ...

    richfaceDemo

    **正文** 富客户端框架(RichFaces)是一款强大的JavaServer Faces (JSF)组件库,它提供了丰富的用户界面组件和交互效果,广泛应用于企业级Web应用开发。本资源"richfaceDemo"是一个完整的RichFaces示例项目,对于...

    Richfaces 使用说明

    Richfaces 使用说明

Global site tag (gtag.js) - Google Analytics