2014-10-29 60 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); 
    } 
} 
相关问题