2017-05-08 103 views
0

我開發了一個視圖來保存Child對象。一切工作正常,但看到我在<p:dataTable>我的其他對象,我總是不得不手動重新加載站點。按鈕點擊後網站不會重新加載

下面的<p:commandButton>的代碼將表單數據發送到我的控制器類。

<h:panelGrid columns="3"> 
    <p:commandButton value="Save" 
    action="#{childController.doSaveChild}" 
    oncomplete="PF('childAddDialog').hide()" 
    update=":childForm"/> 
</h:panelGrid> 

我已經試過使用ajax="false",但它不起作用。

如何在點擊保存按鈕後重新加載站點?

UPDATE:

<p:dataTable>從我view.xhtml:

<h:form id="childForm"> 
<p:dataTable id="childTable" var="child" 
    widgetVar="childTable" value="#{childController.children}" 
    paginator="true" rows="10" paginatorPosition="bottom" 
    paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} 
    {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} 
    {Exporters}" 
    rowsPerPageTemplate="10,25,50"> 

<p:column headerText="Firstname"  
    filterBy="#{child.firstName}"  
    sortBy="#{child.firstName}" filterStyle="display:none">  
    <h:outputText value="#{child.firstName}"/>     
</p:column>            
<p:column headerText="Lastname"   
    filterBy="#{child.lastName}"  
    sortBy="#{child.lastName}" 
    filterStyle="display:none">    
    <h:outputText value="#{child.lastName}"/> 
</p:column>            
<p:column headerText="Birthday"  
    filterBy="#{child.birthday}"  
    sortBy="#{child.birthday}" 
    filterStyle="display:none">  
    <h:outputText value="#{child.birthday}"/>    
</p:column> 
</dataTable> 
</form> 

這裏爲視圖提供孩子的方法:

public Collection<Child> getChildren(){ 
    return children; 
} 

@PostConstruct 
public void initList(){ 
    setChildren(childService.getAllChildren()); 
} 
+1

您正試圖讓您的解決方法正常工作。我會專注於最初的問題。 –

+0

你認爲最初的問題是什麼?我只想讓網站自動重新加載。 – SteveOhio

+1

正確的解決方案將是更新工作。你需要發佈你的dataTable xhtml和相關的支持bean代碼。 –

回答

1

的XHTML代碼從上面的罰款。

爲了讓站點自動更新,有必要在控制器中的save-method之後再次加載帶有所有子項的列表。

public void doSaveChild(){ 
    childService.saveChild(child); 
    child = null; 
    initNewChild(); 
    initList(); //this is needed to get up-to-date list in view 
} 
+0

我建議在命令按鈕上使用'process =「@ this」' –

-1

你可以或者通過做javascript:

<p:commandButton value="Save" 
action="#{childController.doSaveChild}" process="@form" update="@none" oncomplete="location.reload();"/> 

或動作方法返回字符串:

public String doSaveChild(){ 
//your logic 
return "/yourpage?faces-redirect=true"} 
相關問題