【问题标题】:validatorMessage not used when non-number input is entered输入非数字输入时不使用验证器消息
【发布时间】:2013-03-13 19:32:36
【问题描述】:

我想在用户输入非数字时显示自定义消息。

为此,我指定了validatorMessage 属性:

<h:inputText value="#{bean.commission}" required="true"
    requiredMessage="Please enter a value"
    validatorMessage="Please enter a number" />

所需的消息在空输入上正确显示,但验证器消息不会出现在非数字输入上。相反,它显示输入值不是数字的默认消息。

这是怎么引起的,我该如何解决?

【问题讨论】:

  • 你确定这是一个验证错误?消息到底是什么?
  • @atbegin-但是,如果您的代码中没有验证器,您将如何收到验证错误?显示您的完整(相关)代码,您看到的验证器消息是否属于另一个字段?
  • 我只有这几行 h:inputText
  • @atbegin-但他的意思是,您的代码中没有任何内容实际上规定了验证条件(没有validator),因此您不太可能遇到验证错误。尝试在该输入文本上设置converterMessage
  • 这是转换错误,不是验证错误。

标签: validation jsf


【解决方案1】:

您遇到了转换错误,而不是验证错误。

请改用converterMessage

<h:inputText value="#{bean.commission}" required="true"
    requiredMessage="Please enter a value"
    converterMessage="Please enter a number" />

validatorMessage 仅用于通过validator 属性指定的验证器以及通过嵌套的&lt;f:validator&gt;&lt;f:validateXxx&gt; 标签指定的验证器。

converterMessage 用于通过converter 属性指定的转换器以及通过嵌套&lt;f:converter&gt;&lt;f:convertXxx&gt; 标签指定的转换器,也用于特定类的自动注册转换器,例如在int/Integer 输入value 的情况下为IntegerConverter

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多