2011-07-19 39 views
0

我正在使用richfaces 4.0 final。我有我在哪裏,包括使用問題在Richfaces 4.0中重新呈現<ui:include />

<ui:include src="#{bean.selectedPage}" /> 

絃樂selectedPage上設置一個按鈕,點擊其它的facelet的頁面。當點擊按鈕時,頁面被改變,並且圍繞上述代碼的面板被使用「渲染」屬性重新渲染。 facelet有一個數據表。例如:

<rich:dataTable> 
    <f:facet name="header"> 
     <rich:columnGroup> 
      <rich:column> 
       <h:outputText value="hello" /> 
      </rich:column> 
     </rich:columnGroup> 
    </f:facet> 
</rich:dataTable> 

該數據表的css不包括在內。有人可以幫我解決這個問題嗎?我添加了所有需要的罐子。這下面是我的web.xml

<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.skin</param-name> 
    <param-value>blueSky</param-value> 
</context-param> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

的片段中,奇怪的部分是皮膚加載其他組件,如< A4J:的commandButton />。問題僅出現在數據表中。

+0

這是否發生在所有流行的瀏覽器上? (Firefox,Chrome,IE,Safari等?) – BalusC

+0

是的。我挖得更深,我發現了這一點。如果我點擊一個按鈕來更改頁面,即如果我在中更改selectedPage,則會出現問題。如果我將我的selectedPage初始化爲所需的頁面或者像這樣的頁面進行硬編碼,它就可以工作。但是,如果我更改頁面,它不會工作。如何得到這個? – Prabhat

回答

1

我以前遇到過這個。 AFAIK,richfaces按需加載組件。由於您的頁面是動態加載的,因此Richfaces從不加載導致它從不知道的CSS。 (提到硬編碼的頁面名稱,框架已經知道什麼組件的css渲染,所以它的確如你在評論中提到的那樣)。 我能找到的唯一解決方案是在您的父頁面中包含一個rich:dataTable(即包含此小工具的頁面,其中包含<ui:include>),並將其樣式設置爲display:none。這種方式框架包括前面的rich:dataTable css。 我知道它不是一個完美的解決方案,但我找不到更好的解決方案!

+0

我已經做了這樣的事情。我把放在裏面。它的解決方法,但它的作品。 – Prabhat

+0

這很聰明! :) – Nikhil