2012-11-15 69 views
4

當我點擊​​並更新佈局單元的內容時,我失去了佈局單元的CSS樣式。但是,如果我刷新,則會再次顯示樣式。爲什麼是這樣?使用JSF和PrimeFaces點擊菜單後CSS丟失

<p:layout id="plantillaPrincipal" fullPage="true" > 
      <p:layoutUnit id="cabe" position="north"> 


       <h:form id="bmenu"> 

        <p:menubar> 

         <p:menuitem id="inicio" value="INICIO" actionListener="#{controlMenu.mostrarOpcion()}" update=":container"> 
          <f:setPropertyActionListener value="inicio" target="#{controlMenu.opcion}"/> 
         </p:menuitem> 
         <p:menuitem id="tarifas" value="TARIFAS" actionListener="#{controlMenu.mostrarOpcion()}" update=":container"> 
          <f:setPropertyActionListener value="tarifas" target="#{controlMenu.opcion}"/> 
         </p:menuitem> 
         <p:menuitem id="tasas" value="TASAS" actionListener="#{controlMenu.mostrarOpcion()}" update=":container"> 
          <f:setPropertyActionListener value="tasas" target="#{controlMenu.opcion}"/> 
         </p:menuitem> 
         <p:menuitem id="dudas" value="DUDAS" actionListener="#{controlMenu.mostrarOpcion()}" update=":container"> 
          <f:setPropertyActionListener value="dudas" target="#{controlMenu.opcion}"/> 
         </p:menuitem> 
         <p:menuitem id="consultas" value="CONSULTAS" actionListener="#{controlMenu.mostrarOpcion()}" update=":container"> 
          <f:setPropertyActionListener value="consultas" target="#{controlMenu.opcion}"/> 
         </p:menuitem> 
        </p:menubar> 
       </h:form> 
      </p:layoutUnit> 

      <p:layoutUnit id="container" position="center"> 
       <h:form id="fcont"> 
        <ui:insert name="panelInicio">...</ui:insert> 
       </h:form> 
      </p:layoutUnit> 

這是layoutunit的內容更新

<ui:define name="panelInicio"> 
    <h:form id="inicio" rendered="#{controlMenu.opcion=='inicio'}"> 
     <p:panel id="pinicio">hola desde inicio</p:panel> 
    </h:form> 
    <h:form id="tarifas" rendered="#{controlMenu.opcion=='tarifas'}">   
     <p:panel id="ptarifas">hola desde tarifas</p:panel> 
    </h:form> 
    <h:form id="tasas" rendered="#{controlMenu.opcion=='tasas'}">    
     <p:panel id="ptasas">hola desde tasas</p:panel> 
    </h:form> 
    <h:form id="dudas" rendered="#{controlMenu.opcion=='dudas'}"> 
     <p:panel id="pdudas">hola desde dudas</p:panel> 
    </h:form> 
    <h:form id="consultas" rendered="#{controlMenu.opcion=='consultas'}"> 
     <p:panel id="pconsultas">hola desde consultas</p:panel> 
    </h:form> 
</ui:define> 

這是託管bean

@ManagedBean 
@ApplicationScoped 
public class controlMenu { 
public String opcion=""; 

public String getOpcion() { 
    return opcion; 
} 

public void setOpcion(String opcion) { 
    this.opcion = opcion; 
} 

public controlMenu(){  

} 

public void mostrarOpcion(){ 
    System.out.print(opcion); 

} 
+0

在Firefox中有沒有不同的行爲爲F5和CTRL + F5 –

回答

3

無法更新LayoutUnit S,他們不沒有渲染器。在單元內添加一個像OutputPanel的佔位符,並更新它。

+0

好的,解決了。 謝謝 – dalcon

+0

+1,歡迎回到首席 – kolossus