我正在從RF3.3.3,JSF1.2和jboss 5遷移到JSF2/RF4。我們有一個豐富的工具欄組,其中包含從數據庫表生成的下拉菜單。我對web.xml進行了更改,重命名了支持bean中的適用組件,但工具欄將僅顯示爲文本而不是下拉菜單和鏈接。Richfaces 4動態創建豐富組件顯示爲文本而不是菜單/鏈接
web.xml中:
<?xml version="1.0"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>org.richfaces.enableControlSkinning</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.enableControlSkinningClasses</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.resourceOptimization.enabled</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.skin</param-name>
<param-value>blueSky</param-value>
</context-param>
名爲menu.xhtml - 包括在與h的所引用:頭和h:body標記:
<h:form id="mnMenu">
<rich:toolbar id="tb" >
<rich:toolbarGroup>
<s:link id="menuHomeId" view="/home.xhtml" value="Home" propagation="none"/>
</rich:toolbarGroup>
<rich:toolbarGroup binding="#{menuQueries.myBarGrp}" />
</rich:toolbar>
<!-- account for jsf bug? bug DOESN'T WORK -->
<rich:toolbar rendered="false"/>
<rich:toolbarGroup rendered="false"/>
<rich:dropDownMenu rendered="false"/>
<rich:menuGroup rendered="false"/>
<rich:menuItem rendered="false"/>
</h:form>
從後臺bean - 此方法創建的工具欄組,它最初是這樣的:
public HtmlToolBarGroup getMyBarGrp()
{
this.myBarGrp = new org.richfaces.component.html.HtmlToolBarGroup();
for (CtsPermissionHierarchyAltV each : this.getMainMenuList()) {
this.myBarGrp.getChildren().add(getDropDownMenu(each));
}
return this.myBarGrp;
}
我改成了這個,都產生相同的輸出:
public UIToolbarGroup getMyBarGrp()
{
FacesContext ctx = FacesContext.getCurrentInstance();
this.myBarGrp = (UIToolbarGroup) ctx.getApplication().createComponent(ctx,
UIToolbarGroup.COMPONENT_TYPE, "org.richfaces.ToolbarGroupRenderer");
this.myBarGrp.setId("dynMenuGrp");
for (CtsPermissionHierarchyAltV each : this.getMainMenuList())
{
this.myBarGrp.getChildren().add(getDropDownMenu(each));
}
}
getDropDownMenu和子菜單方法編碼類似。 我沒有收到任何錯誤。 FF螢火蟲輸出的文字,應該是一個下拉菜單,如下所示:
<div id="mnMenu:Communications" class="rf-ddm-lbl rf-ddm-unsel ">
... more stuff
遷移前它是這樣的:
<div id="mnMenu:Communications" class="rich-ddmenu-label rich-ddmenu-label-unselect">
... more stuff
通過螢火蟲輸出我可以看到所有的子菜單導航 - 但是他們都是文字參考。 我看到了我的所有css文件 - 它們在身體而不是頭部顯示,但他們都在那裏。 我錯過了什麼嗎?我還能檢查什麼?
的JBoss 7.1.1煤層2.3.0 JSF2.1的RichFaces 4.2.2
這是否僅出現在動態生成的組件或**全部**您的richfaces組件未設置樣式? – kolossus
只有動態生成的組件 – gebuh