2015-09-30 20 views
1

我使用CombinedResourceHandler單獨Omnifaces CombinedResourceHandler爲了在POST和GET

<application>   
    <resource-handler>org.omnifaces.resourcehandler.CombinedResourceHandler</resource-handler> 
</application> 

對於某些排除資源:

<context-param> 
    <param-name>org.omnifaces.COMBINED_RESOURCE_HANDLER_EXCLUDED_RESOURCES</param-name> 
    <param-value> 
     font-awesome/4.3.0/css/font-awesome.min.css 
    </param-value> 
</context-param> 

而且我有這個簡單的頁面:

<f:view contentType="text/html" > 
    <h:head> 
     <h:outputStylesheet library="primefaces-bootstrap" name="theme.css" /> 
     <h:outputStylesheet name="css/icons/icons.css"/> 
     <h:outputStylesheet name="font-awesome/4.3.0/css/font-awesome.min.css" /> 
    </h:head> 
    <h:body> 
     <o:form> 
      <o:messages></o:messages> 
      <h:inputText required="true" id='somefield'/> 
      <h:commandButton></h:commandButton> 
     </o:form> 
    </h:body> 
</f:view> 

當請求是GET我有這個css命令(生產模式):

<link type="text/css" rel="stylesheet" href="/travelc/javax.faces.resource/theme.css.xhtml?ln=primefaces-bootstrap"/> 
    <link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/eNorKMrMTU1LTE4t1k3Kzy8pLilKLLAqyUjNTdVLLi6uAWL9zOT8PCgJEgMA_HITwQ.css.xhtml?ln=omnifaces.combined&amp;v=1441782365350"/> 
    <link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/font-awesome/4.3.0/css/font-awesome.min.css.xhtml"/> 

當是POST:

<link type="text/css" rel="stylesheet" href="/travelc/javax.faces.resource/theme.css.xhtml?ln=primefaces-bootstrap"/> 
    <link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/font-awesome/4.3.0/css/font-awesome.min.css.xhtml"/> 
    <link rel="stylesheet" type="text/css" href="/travelc/javax.faces.resource/eNorKMrMTU1LTE4t1k3Kzy8pLilKLLAqyUjNTdVLLi6uAWL9zOT8PCgJEgMA_HITwQ.css.xhtml?ln=omnifaces.combined&amp;v=1441782365350"/> 

打破了網頁。我怎樣才能防止這種情況發生?

我使用omnifaces最新快照和MyFaces的2.2.8

回答

1

我複製它。 MyFaces在這裏扮演一個角色。它適用於Mojarra。

回發時,組合樹仍然存在於組件樹中,必須進行提取和重新組合(只是爲了覆蓋在回發過程中有條件地添加/刪除任何資源的情況)。但是,由於邏輯錯誤,組合資源是新創建的,並且被添加到結束位置,而不是重新使用它發現的早期組合資源位置,從而確認您所看到的症狀。如果你從組合中排除資源,這個錯誤只會引起注意,導致有多個資源。它在Mojarra工作,因爲組件ID是相同的。

邏輯錯誤根據this commit修復,並根據當今最新的OmniFaces 2.2快照提供。

+0

它的工作原理,謝謝。你太棒了! – cocorossello