2011-01-09 51 views
35

我使用Primefaces使我的應用程序更漂亮一點。我注意到p:commandButtonh:commandButton的工作方式不一樣。PrimeFaces commandButton不會導航或更新

p:commandButton調用該方法,沒有其他任何haap。 h:commandButton調用該方法並返回導航。

我在使用p:commandButton時按下登錄按鈕後重定向時遇到問題。如何處理?


我有一個更新的參數:

<p:commandButton value="Login" action="#{login.login}" type="submit" update="msgs" /> 

回答

50

<p:commandButton>需要下列操作之一才能正常工作:

  • update屬性列表ID組成部分的重新渲染(爲AJAX請求)
  • 屬性ajax="false"作出正常,非ajax提交。

如果您沒有,按鈕默認爲一個沒有UI反饋的AJAX請求。

此外,當週圍的<h:form>具有enctype屬性時,我遇到了兩個選項均無法正常工作的問題。

+0

我有一個更新的參數。查看更新後的問題 – Sven 2011-01-09 13:23:15

+1

如果您想要使用導航進行同步請求,則需要`ajax =「false」`。至於`update`參數,請參閱我之前[你之前的問題之一]的評論(http://stackoverflow.com/questions/4605118/jsf2-exeptions-while-submiting-to-bean),你沒有迴應至今。 – BalusC 2011-01-09 13:39:57

8

如果您正在進行導航並請求使用ajax完成,則必須使用重定向。

26

我想Cagatay換貨是:

是否瀏覽網頁:

<p:commandButton action="home.xhtml" value="Go Home"/> 

作品(重定向頁面):

<p:commandButton action="home.xhtml?faces-redirect=true" value="Go Home"/> 

作品(重定向頁面)

<p:commandButton action="home?faces-redirect=true" value="Go Home"/> 

如果.xhtml是在web.xml中定義的默認後綴:

<context-param> 
     <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
     <param-value>.xhtml</param-value> 
    </context-param> 

更多信息可以在primefaces論壇中找到,例如在this discussion about navigation

我希望這有助於有點...

5

我有類似的問題。

我正在使用primefaces和primefaces mobile,並且在使用 <p:commandButton> with ajax =「false」和action =「find.xhtml?faces-redirect = true」時,導航在Firefox中失敗。

我可以使它在Firefox也工作的唯一途徑是通過使用<h:commandButton>

<h:commandButton value="#{msg.find}" process="find" 
        action="find.xhtml?faces-redirect=true" /> 
相關問題