Jsf 当我在页面之间切换时,如何使Primefaces咆哮消息可见?
我有一个带有Primefaces咆哮的JSF页面。我想在页面之间切换时显示消息。这可能吗?在第二页bean的@PostConstruct方法(或构造函数)中,添加FacesMessage,例如:Jsf 当我在页面之间切换时,如何使Primefaces咆哮消息可见?,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我有一个带有Primefaces咆哮的JSF页面。我想在页面之间切换时显示消息。这可能吗?在第二页bean的@PostConstruct方法(或构造函数)中,添加FacesMessage,例如: context.addMessage(null, new FacesMessage("Growl Message", "Growl Message Text")); 这是我的解决办法。在重定向之前,它将在当前页面中显示消息 HTML: 请注意,bean必须是@viewscope。我忘了提到一个细节
context.addMessage(null, new FacesMessage("Growl Message", "Growl Message Text"));
这是我的解决办法。在重定向之前,它将在当前页面中显示消息 HTML:
请注意,bean必须是
@viewscope
。我忘了提到一个细节:我有一个JSF页面Accounts
,在那里我可以看到一个用户列表,我还有一个JSF页面,带有用于添加用户的表单。当我添加新用户时,我希望将用户重定向到页面Accounts
,并显示Primefaces咆哮消息“Success”。在本例中,每当我刷新页面Accounts
时,我都会看到消息。如何解决此问题?请尝试在咆哮组件定义中添加redisplay=“false”。例如,如果此答案对您有效,请记住使用答案左侧的复选标记将其标记为已批准。谢谢
<h:form prependId="false">
<p:growl />
<p:button outcome="gotoABC" id="rdr-btn" style="display: none;" />
<p:commandButton action="#{bean.process()}" update="@form" />
</form>
public void process(){
addInfoMsg(summary, msgDetail); //Add msg func
RequestContext.getCurrentInstance().execute("setTimeout(function(){ $('#rdr-btn').click(); }, 3000);"); // 3 seconds delay. I put the script in Constants to config later.
}