2014-10-29 47 views
-1

顯示驗證消息,但在primefaces命令按鈕上的ajax屬性爲false時突然消失。在JSF managedBean如何在黃金面上的ajax屬性爲假時重定向後保留JSF消息commad按鈕

FacesContext context = FacesContext.getCurrentInstance(); 
    context.getExternalContext().getFlash().setKeepMessages(true); 
    context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "error.nozipfile", null)); 
    return response().redirectPage(WEB_PAGE_LIST); 

primefaces

操作方法命令按鈕

<p:commandButton 
      value="#{lang.save}" 
      onclick="PF('importDialog').hide(); 
      PF('ajaxStatusDialog').show();" 
      action="#{zcmsContentController.actionImport}" 
      update="@this" 
      ajax="false" 
      process="@this"    
      styleClass="right-button"/> 

我怎能消息甚至重定向

+0

使用一個普通的字中,h嘗試:commandButton'?那樣有用嗎? – Kukeltje 2017-10-24 12:47:12

回答

2

後,您或許可以通過把臉上的消息在做到這一點會話範圍和另一頁的頁面加載時檢查是否有消息是需要顯示的會話。這樣

List<FacesMessage> messages = new ArrayList<FacesMessage>(); 
messages.add(new FacesMessage(FacesMessage.SEVERITY_INFO, "error.nozipfile", null)); 
HttpSession session = (HttpSession) context.getExternalContext().getSession(false); 
session.put("facesMessages", messages); 

而且在方法一種叫上其他頁面的加載

if (session.get("facesMessages") != null) { 
    List<FacesMessage> messages = (List<FacesMessage>)session.get("facesMessages"); 
    for (FacesMessage message : messages) { 
     context.addMessage(null, message); 
    } 
} 
相關問題