如果比较我们在第#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步后的新面板看起来像这样