Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何防止在更新全局PrimeFaces时更新p:消息_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf 如何防止在更新全局PrimeFaces时更新p:消息

Jsf 如何防止在更新全局PrimeFaces时更新p:消息,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我正在使用PF5.3和JSF2.2 我有一个全局p:growl,它将在backBean中更新,问题是每当我更新全局p:growl时,其他p:messages也会用相同的数据更新。我想要一种只更新backbean中action方法中的全局咆哮的方法,其他p:消息不应该更新 xhtml: <h:body> <p:growl id="growlGeneralMessages" showDetail="true" sticky="true" globalOnly="true"

我正在使用PF5.3和JSF2.2

我有一个全局p:growl,它将在backBean中更新,问题是每当我更新全局p:growl时,其他p:messages也会用相同的数据更新。我想要一种只更新backbean中action方法中的全局咆哮的方法,其他p:消息不应该更新

xhtml:

<h:body>
    <p:growl id="growlGeneralMessages" showDetail="true" sticky="true" globalOnly="true" /> 
    <h:form id="register_new_student" enctype="multipart/form-data" >
       <p:messages autoUpdate="true" />
       <p:commandButton id="new_student_action" value="Add"  update="register_new_student_panel" validateClient="true" action="#{teacherPresentation.newStudentAction()}" />
   </h:form>
</h:body>
我尝试了两种方法,但都不起作用:

1-从p:messages中删除属性autoUpdate(失败)

2-在addMessage方法中指定客户端id


context.addMessage(null,message);-->addMessage(“growlGeneralMessages”,message);(这也失败了)

我想你有两种选择来控制它

关键选项
p:growl
p:messages
都有一个
for
属性,可以将该组件绑定到键。您可以使用该键作为
FacesContext.addMessage()的
clientId
参数来控制要在每个组件上显示的消息

这就是我的意思:

<p:growl for="growlKey"/>
严重性选项 同样,这两个组件都有一个
严重性
参数,用于控制中显示的消息。例如,您可以使用
info
表示咆哮,使用
error
表示消息,或其他任何形式

创建
FacesMessage
时,可以使用
FacesMessage.severity
指定严重性

FacesMessage facesMsg = new FacesMessage(
   FacesMessage.SEVERITY_ERROR, "Your title", "Your Message")
希望有帮助

facesCtx.addMessage("grwolKey", facesMsg);
FacesMessage facesMsg = new FacesMessage(
   FacesMessage.SEVERITY_ERROR, "Your title", "Your Message")