Jsf Primefaces表单字段requiredMessage显示两次
我有一个带有p:messages和inputText字段的表单。inputText字段是必需的,并且具有requiredMessage。当使用空inputText单击commandButton时,我只想使用p:messages显示消息,但我看到相同的消息两次。曾经使用过p:message,另一个我认为是服务器端验证消息(如右上角的咆哮)。我的相关代码如下:Jsf Primefaces表单字段requiredMessage显示两次,jsf,primefaces,Jsf,Primefaces,我有一个带有p:messages和inputText字段的表单。inputText字段是必需的,并且具有requiredMessage。当使用空inputText单击commandButton时,我只想使用p:messages显示消息,但我看到相同的消息两次。曾经使用过p:message,另一个我认为是服务器端验证消息(如右上角的咆哮)。我的相关代码如下: <h:form id="saveUserForm"> <p:panel style="border:none">
<h:form id="saveUserForm">
<p:panel style="border:none">
<p:messages id="messages" closable="true" autoUpdate="true" />
<div align="left">
<p:panelGrid styleClass="userPanel">
<p:row>
<p:column colspan="4">
<p:inputText id="street" value="" size="67" maxlength="100" required="true" requiredMessage="Street is required" />
</p:column>
</p:row>
<p:row>
<p:column colspan="4">
<div align="center">
<p:commandButton action="#{userController.add}" rendered="#{mode eq 'add'}" value="Add" ajax="false" update=":saveUserForm"/>
<p:commandButton action="#{userController.update}" rendered="#{mode ne 'add'}" value="Update" ajax="false" update=":saveUserForm"/>
<p:commandButton action="#{userController.prepareList}" value="Cancel" immediate="true"/>
</div>
</p:column>
</p:row>
</p:panelGrid>
</div>
</p:panel>
</h:form>
不知道为什么我会看到两次所需的消息。有什么想法吗
编辑:为主模板添加咆哮代码
<p:growl id="messages" showDetail="true" sticky="true" autoUpdate="true"/>
我看到的屏幕截图:
我认为,在您的情况下,消息被添加到p:message和p:growl中 试试这个,(Primefaces 4.0及以上版本) 从p:messages中删除autoUpdate=“true”,并在p:commandButton中添加update=“:saveUserForm”,以便仅更新p:message。并确保p:growl未在单击按钮时更新 或者试试这个
<p:growl globalOnly="true" autoUpdate="false">
这样,仅来自服务器端的消息以咆哮的形式显示
编辑:确保模板中的组件未被使用。我认为,在您的情况下,消息被添加到p:message和p:growl中 试试这个,(Primefaces 4.0及以上版本) 从p:messages中删除autoUpdate=“true”,并在p:commandButton中添加update=“:saveUserForm”,以便仅更新p:message。并确保p:growl未在单击按钮时更新 或者试试这个
<p:growl globalOnly="true" autoUpdate="false">
这样,仅来自服务器端的消息以咆哮的形式显示
编辑:确保模板中的组件未被使用。删除showtail=“true”
。
其默认值为false
删除showDetail=“true”
。
其默认值为
false
p:growl标记用于以咆哮格式显示消息。如果您已经包含了这两个标记,那么您将得到所看到的结果。你确定你没有把标签放在什么地方吗?你的问题让人困惑。我没有在这个代码片段的任何地方看到
(只有一个
)。您描述的第二条消息确实来自
,但在这个代码片段中也看不到。请发布一个真实的MCVE:@BalusC谢谢你调查此事。我的代码中没有真正的and。我只是在用。但我想提一提的是,我的应用程序有一个主模板,其中包含。你认为有人在叫咆哮吗?我正在编辑代码以显示twmplate咆哮,还向commandButton添加了更新属性。不确定我是否可以在这里添加屏幕截图。为什么你认为模板的代码没有被使用?那么模板的用途是什么?@BalusC我同意你的看法,但我只是更新当前表单,所以我不希望调用主模板的咆哮。我也同意我没有好的“id”来咆哮,我必须努力。这就是问题所在吗?p:growl标签用于以growl格式显示消息。如果您已经包含了这两个标记,那么您将得到所看到的结果。你确定你没有把标签放在什么地方吗?你的问题让人困惑。我没有在这个代码片段的任何地方看到
(只有一个
)。您描述的第二条消息确实来自
,但在这个代码片段中也看不到。请发布一个真实的MCVE:@BalusC谢谢你调查此事。我的代码中没有真正的and。我只是在用。但我想提一提的是,我的应用程序有一个主模板,其中包含。你认为有人在叫咆哮吗?我正在编辑代码以显示twmplate咆哮,还向commandButton添加了更新属性。不确定我是否可以在这里添加屏幕截图。为什么你认为模板的代码没有被使用?那么模板的用途是什么?@BalusC我同意你的看法,但我只是更新当前表单,所以我不希望调用主模板的咆哮。我也同意我没有好的“id”来咆哮,我必须努力。这就是问题所在吗?谢谢你,潘卡吉。我试过你的建议,但没有成功。你能检查上面的评论以获得更新吗。我试过你的建议,但没有成功。你能检查上面的评论以获得更新吗