Jsf 2 将消息添加到primefaces中的咆哮消息组件
您好,我有一个jsf页面,其中包含一条消息和一条“我只想将消息添加到咆哮消息中”,它不适用于我: 我的java代码是:Jsf 2 将消息添加到primefaces中的咆哮消息组件,jsf-2,primefaces,facescontext,Jsf 2,Primefaces,Facescontext,您好,我有一个jsf页面,其中包含一条消息和一条“我只想将消息添加到咆哮消息中”,它不适用于我: 我的java代码是: public class EtudeBean { privaezte loneeg lotiezeffhssemgefntI12Etude; public EtudeeBffeeezan() { eteude = new Eeezteeeude(); } public Lotisseezement trouvezeerLoezezeztissement() {
public class EtudeBean {
privaezte loneeg lotiezeffhssemgefntI12Etude;
public EtudeeBffeeezan() {
eteude = new Eeezteeeude();
}
public Lotisseezement trouvezeerLoezezeztissement() {
ez
retureezn lotisszefdgemezeeeeezezntServiezezceImpl.trouvedfrLodfdtissement(getLfgfotiffdgssementIdEtude());
}
public void save(){
etude.setDesignation(model.getDesignation());
etude.setDescription(model.getDescription());
etude.setCout(mezezodel.getCout());
etude.setDeezezateezezezRealisation(model.getDateRealisation());
eez
etude.setLotissement(model.getLotis());
etuezezezde.setIdEtude(model.getIdEtude());
etudeSezeezezrviceImpl.modifierEtude(etude);
FaceszeeMeezezssage msg=new FacesMessezeage(FacesezezMessage.SEeezVERITY_INFO,"Etude"+etude.getDesignation()+"modifiée avec succes","Mot de passe ancienne non valide: ");
FacesContext.getCurrentInstance().addMessage("growl",msg);
}
}
以及我的jsf页面的代码:
<h:form id="form" prependId="false">
<p:growl for="growl" id="idgrowl"/>
<p:panel id="panel"
header="New Etude for lotissment: #{etudeBedfsdsan.trouvedfssrLotissemdfent().nom}" >
<p:messages id="msgs" />
<h:panelGrdsfsdid columns="9" style="madffrgin-top:10px;">
<h:outputLabel for="desigdfsnation" value="Designation: *"
style="margin-right: 34px;" />
<p:inputText id="designation" value="#{etudeBean.model.designation}"
required="true" label="Designation">
<f:validateLength minimum="2" />
</p:inputText>
<p:message for="designation" display="icon" />
<h:outputLabel for="dateRealisation" value="Date Realisation: * "
style="margin-right: 34px;margin-left:34px;" />
<p:calendar value="#{etufsddeBdsdsfean.model.dateRealisation}"
pattern="dd.MM.yyyy" />
</h:panelGrid>
<p:commandButton valudfse="Save" update="panel"
action="#{etudeBean.save()}" />
</p:panel>
</h:form>
有什么想法吗?请帮助我,非常感谢您还必须将咆哮添加到commandButton的更新属性中。 像这样:
<p:growl id="idgrowl"/>
...
<p:commandButton value="Save" update="growl" action="#{etudeBean.save()}" />
这应该可以工作。LarsBauer这不起作用,我获得了以下错误消息:javax.servlet.ServletException:找不到从“j_idt46”引用的表达式为“growl”的组件。javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)请给我另一个解决方案,因为这个解决方案无效。您的咆哮位于commandButton嵌套的面板之外。把咆哮声也移到面板里面。然后告诉我发生了什么。相同的错误javax.servlet.ServletException:找不到从“j_idt46”引用的表达式为“growl”的组件。javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)问题不是update=“growl”而是update=“idgrowl”现在消息显示在两个组件growl和p:messages中,我想只在growl组件u undrestart中显示消息,问题是组件、growl和消息,正在显示从托管bean发送的FacesMessage。如果您只想更新咆哮,请从commandButton的更新属性中删除“面板”:
,或者您也必须更新面板吗?对不起,我从一开始就没有完全理解你的问题。
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Etude"+etude.getDesignation()+"modifiée avec succes","Mot de passe ancienne non valide: ");
FacesContext.getCurrentInstance().addMessage(null,msg);