从 3.3.0.GA 版本开始,无法要求 Richfaces 停止为边框和背景渲染 CSS。有必要覆盖内置样式表中的每个属性(包含在 org.richfaces.renderkit.html.css 中的那些,它是richfaces-ui-3.3.0.GA.jar 的一部分)。
Plug and skin为您提供了执行此操作的必要功能,就像使用常用技术添加的自定义 CSS 一样,尽管 plug and skin 可以说更好,因为您可以参考抽象颜色定义来弥补缺失的背景,如下所示:
<u:style name="color" skin="abstractColorName" />
以下 CSS 属性可用于快速中和边框和背景相关属性。
border: none;
background: transparent;
要开始使用插件和皮肤,您可以使用以下 Maven2 命令序列:
mvn archetype:generate -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-plug-n-skin -DarchetypeVersion=3.3.0.GA -DartifactId=fil-skins -Dpackage=com.feelitlive.richfaces -DgroupId=com.feelitlive.server -Dversion=0.0.1-SNAPSHOT -DarchetypeRepository=http://repository.jboss.com/maven2/
cd fil-skins
mvn cdk:add-skin -Dname=fil -Dpackage=com.feelitlive.richfaces.skins
这最好从命令行完成,因为不幸的是 Eclipse 插件无法在 jboss 存储库中找到原型(其他 IDE 可能会更好地处理它)。您需要更改 artifactId、groupId、包、版本和名称属性以适合您的项目。选择反映工件范围的工件和包名称以保存多个皮肤定义。
有可能 - 尽管需要做很多工作 - 以通用格式 xxxBackgroundEnabled 和 xxxBorderEnabled 添加对皮肤属性的支持,以逐个关闭这些边框和背景 CSS 的呈现。
您需要与richfaces 团队合作修补org.richfaces.renderkit.html.css 中的xcss 文件。您还需要某个 XCSS JSF 标记库中的某种条件输出功能(在 XCSS 文件中由 http:/jsf.exadel.com/template/util 或 http:/jsf.exadel.com/template 标识)我预计用它来包装 XCSS 文件中的 CSS 属性组。
如果您对 Richfaces 进行了这样的修改,那么您将能够从任何皮肤的属性文件中禁用有争议的 CSS 的呈现。