【发布时间】:2010-11-12 16:03:30
【问题描述】:
我正在使用 JSF 1.2 和 Richfaces 3.3.FINAL。我有一个inputText,它必须是 1 到 999999999999 之间的数字。
<h:inputText id="prodId" required="true" value="#{product.productId}" maxlength="12" >
<f:validator validatorId="anotherValidatorValidator" />
<f:validateLongRange minimum="1" maximum="999999999999"/>
</h:inputText>
我希望我的验证消息基本上表明用户必须输入一个介于 1 和 99...9 之间的数字。如果我输入数字 -1 并提交表单,这就是出现的消息,这就是我想要的。
但是,如果我在该字段中写字母,请说“abcd”,我明白了:
prodId: 'abcd' 必须是介于 -9223372036854775808 到 9223372036854775807 之间的数字 例如:98765432
这条消息让用户感到困惑,因为如果提交了建议的负数,另一个validateLongRange 验证器将抛出一条消息,现在要求输入正确范围内的数字。
出现第二条消息是因为当提交字符串被强制转换为 Long(这是支持 bean 属性的类型)并出现消息 javax.faces.component.UIInput.CONVERSION_MESSAGE_ID 时抛出了 ConverterException。
我能否以某种方式覆盖它(不是针对所有 ConverterException 情况,仅针对特定情况),或者显示其他 validateLongRange 的消息?
【问题讨论】:
-
JSF 1.x 还是 2.x?
faces-config中有<message-bundle>吗? -
JSF 1.2 和 Richfaces 3.3.3.FINAL
-
我没有
,只有一个 。但是,如果这是您的建议,我不想在所有情况下都覆盖 CONVERSION_MESSAGE_ID。这对其他情况确实有意义。 -
不,只是为了简化消息检索 :) 没有它,您必须自己对其进行硬编码或导入 JSF 实现特定的类来获取所需的消息。
标签: java jsf message validation