2015-09-14 85 views
0

在JSF 2.2中編程時,我有時不確定update語句是否工作。例如,我有下面的表格,並希望在按鈕我點擊它來獲取更新:有沒有辦法知道哪些組件通過操作更新

<h:form id="theform"> 

    <h:panelGroup id="entity"> 

     <p:dataTable 
      var="item" 
      tableStyle="width:auto" 
      styleClass="tableFillRight" 
      value="#{artistEntityBean.asList}" 
      id="table"> 

      <p:column headerText="Name"> 
       <h:outputText value="#{item.name}" styleClass="tableArtistName" /> 
      </p:column> 

      <f:facet name="footer"> 

       <h:panelGroup id="footerWrapper"> 

        <p:commandButton 
         id="requestMod" 
         partialSubmit="true" 
         process="@this" 
         value="become moderator" 
         update="@parent :messages" 
         disabled="#{moderatorEntityBean.item.moderatingArtist}" 
         actionListener="#{moderatorEntityBean.handleCreate()}" 
         action="#{artistEntityBean.init()}">        
        </p:commandButton> 

       </h:panelGroup> 

      </f:facet> 

     </p:dataTable> 

    </h:panelGroup> 

</h:form> 

隨着按鈕的IDtheForm:table:requestMod我認爲update="@parent"會工作。但是,它似乎沒有得到更新,或者我在支持bean或其他地方的某個地方犯了錯誤?

事情是:我現在沒有。因此,爲了推斷錯誤在哪裏,不知怎的,真的很好,確保commandButtonupdate部分起作用。

現在,單擊按鈕時,更改後的值僅在重新加載頁面後更新。

回答

0

使用Firebug或類似的瀏覽器插件來監視網絡並檢查來自服務器的響應。如果組件(例如,clientId = component_client_id)已更新,您將看到如下所示的內容:

<?xml version='1.0' encoding='UTF-8'?> 
<partial-response id="j_id1"> 
    <changes> 
     <update id="component_client_id"> 
      <![CDATA[ 
       ... component's HTML code ... 
      ]]> 
     </update> 
     <update id="j_id1:javax.faces.ViewState:0"> 
      <![CDATA[-74243231543289530:-219780152641895389]]> 
     </update> 
    </changes> 
</partial-response> 
相關問題