如果比较我们在第#2步后和 richfaces-demo 上的新面板的外观和感觉,你会发现一个重要的不同之处。我们新的面板缺少标题背景中的渐变。

让我们尝试使用JSF 2.0 PDL找到一个解决方案。

RichFaces组件有一个重要的特性。它们可以根据预定义的皮肤参数进行皮肤化。在组件中使用的许多图形图像,如富面板的渐变背景图像,不是静态的,而是使用相同的皮肤参数集由Java类生成的。

在JSF 2.0 PDL中,我们可以使用以下表达式引用资源,例如图像

#{resources['foo/bar/foobar.gif']}

根据Mojarra源代码,它只从类路径中读取静态资源,并从Web根目录中读取硬编码的“resources”文件夹。Mojarra并不假设资源可以动态生成。因此,为了简单起见,让我们现在放弃皮肤化的想法,并取默认的blueSky皮肤中的渐变。

我们将静态图像移至{webroot}/resources/img/文件夹,并在CSS文件中添加三行

.rich-panel-header{
 ....... 
 background-position:left top;
 background-repeat:repeat-x;
 background-image: url(#{resource['rich/img/panel_header.png']})
}

就是这样。现在我们可以在面板标题背景中看到渐变了。第#3步后的新面板看起来像这样

http://livedemo.exadel.com/richfaces4-panel-3/


返回顶部