当前位置: 首页 > 知识库问答 >
问题:

JSF验证错误消息不显示[重复]

彭海阳
2023-03-14
@Size(min = 3, message = "At least 3 characters")
private String name;
<p:outputLabel for="name" value="#{msg.name}" />
<p:inputText value="#{customer.name}" id="name" />
<h:message for="name"/>
<p:commandButton id="submit-button" value="#{msg.next}" action="next.xhtml"/>   
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="j_id1:javax.faces.ViewState:0"><![CDATA[4215878805973597748:-123199067583012360]]></update><extension ln="primefaces" type="args">{"validationFailed":true}</extension></changes></partial-response>

因此,很明显,它识别出输入的名称太短,但我在视图中没有得到任何错误消息,正如这里所预期的:

共有1个答案

楮法
2023-03-14

请考虑以下内容:

<p:commandButton id="submit-button" value="#{msg.next}" action="next.xhtml"/>

p:commandButton是一个Primefaces库标记,是JSF的h:commandButton的增强版本。Primefaces按钮默认启用ajax。

在发布的示例中,当按下推荐按钮时,将处理表单(这是默认行为),并显示next.xhtml页面。

<h:message for="name"/>
<h:message for="name" id="errmsg"/>
<p:commandButton id="submit-button" value="#{msg.next}" action="next.xhtml"/>
<p:commandButton id="submit-button" value="#{msg.next}" action="next.xhtml" update="errmsg"/>


备用:

解决这一问题的另一种方法是简单地提交一个非Ajax请求,然后在默认情况下刷新整个页面--并且可以看到验证消息。在这种情况下,h:message标记不需要有“id”属性,命令按钮可以在没有ajax行为的情况下声明为:

<p:commandButton ajax="false" id="submit-button" value="#{msg.next}" action="next.xhtml"/>


注意:以上结论是基于在Apache Tomcat 8 web server、Apache MyFaces 2.2、Primefaces 5.3和Hibernate Bean Validator 5.2上试用的代码得出的。

 类似资料:
  • 我试图让我的javascript验证电话号码输入,并在用户输入信息不正确时显示消息。我还设置了另外两个输入,所以我复制了其中一个,并用phoneNumber替换了名称,但没有结果。没有HTML的替代品,请它是我必须使用我的评估。 这里我只包含了电话号码输入的代码。http://jsfiddle.net/29ZNV/ 超文本标记语言 JAVASCRIPT

  • 问题内容: 我安装了XAMPP 1.7.4(使用PHP 5.3.5),问题是PHP不显示任何错误消息。例如,如果我使用不带参数的MYSQL连接,PHP将不会抱怨必填字段。 为什么是这样? 如何配置PHP以显示错误? 问题答案: 要在脚本级别启用错误,请在脚本顶部添加: 或者,如果它 不是 生产站点,而仅仅是开发/测试站点,则可以在php.ini中打开错误报告。搜索以下设置:

  • 问题内容: 我有一个表格,如果单击“提交”,则需要显示验证错误消息。 这是一个工作的家伙 用户开始进行更改时,验证工作正常。但是它不会显示任何错误消息。如果单击“提交”而不输入任何内容。 有实现这个的想法吗?或者以其他方式如何在单击“提交”按钮时使每个输入字段$ dirty 问题答案: 我在http://jsfiddle.net/thomporter/ANxmv/2/上找到了这个小提琴,它巧妙地进

  • 我将vee validate与vuetify一起使用,我需要检查电子邮件是否唯一。因此,在我的vuejs中,我添加了 在我的vuetify中,我添加了 上述规则适用于所有规则,但无法从唯一电子邮件规则解析已注册的邮件