gpt4 book ai didi

templates - 模板中的多个 primefaces 消息

转载 作者:行者123 更新时间:2023-12-04 02:20:16 24 4
gpt4 key购买 nike

问题:

我的 Web 应用程序是由多个片段和模板构建的。 Header-Template 有一个“p:messages”来显示应用程序范围的错误。除此之外,我还有一个内容模板来显示内容/正文。

现在我遇到了以下问题:我想在内容模板的组件下显示内容验证错误(例如选择了错误的日期等)。如果我发送一个面部消息,它不仅会显示在内容的消息部分,还会显示在标题中:

enter image description here

目前只有两个组件需要验证:

<p:calendar id="calendar1" value="#{doesn't matter}">
<f:validateRequired></f:validateRequired>
</p:calendar>

<p:calendar id="calendar2" value="#{doesn't matter}">
<p:ajax event="dateSelect" listener="#{onDateSelect}"
partialSubmit="true" update="ContentMessages"/>
</p:calendar>

消息标签:

    <p:messages id="GlobalMessages" showSummary="true" showDetail="false" closable="true" redisplay="false"/>

<p:messages id="ContentMessages" showDetail="true" autoUpdate="true"/>

我如何发送 FacesMessage:

 FacesContext.getCurrentInstance().addMessage(componentClientId,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error:","Error Text"));

到目前为止我尝试了什么:

  • 使用两个带有 for="calendar1"和 for="calendar2"的 p:message 标签。两个模板中仍然存在错误。

  • 使用带有 for-tag 的“ContentMessages”:for="calendar1 calendar2"。在标题中显示错误,而不是在内容中显示错误,只有当我为 for-tag 使用单个组件 ID 时,它才会再次在两个模板中显示消息。

我不能做什么:

  • 使用 globalOnly="true"。
  • 仅为信息设置 header 的严重性,为错误和严重错误设置内容。

最佳答案

因为我看不到您模板的代码,所以我无法判断它们是否有问题,但 primefaces 中的可定位消息应该没有问题。

尝试通过删除不必要的代码来缩小问题范围。

此示例 100% 有效,每条消息只会显示一次。

<h:form id="form">
<p:messages for="somekey" />
<p:messages for="anotherkey" />

<p:commandButton value="Message 1" id="m1" update="form" actionListener="#{playgroundController.addMessage1()}" styleClass="ui-priority-primary" />
<p:commandButton value="Message 2" id="m2" update="form" actionListener="#{playgroundController.addMessage2()}" styleClass="ui-priority-primary" />

</h:form>

bean 类:

public void addMessage1() {
FacesContext.getCurrentInstance().addMessage("somekey", new FacesMessage(FacesMessage.SEVERITY_INFO, "Sample info message", "Message 1"));
}


public void addMessage2() {
FacesContext.getCurrentInstance().addMessage("anotherkey", new FacesMessage(FacesMessage.SEVERITY_INFO, "Sample info message 2", "Message 2"));
}

关于templates - 模板中的多个 primefaces 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30910311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com