gpt4 book ai didi

java - JSF 验证消息

转载 作者:行者123 更新时间:2023-12-04 06:41:35 25 4
gpt4 key购买 nike

我使用的是 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' must be a number between -9223372036854775808 to 9223372036854775807 Example: 98765432



此消息让用户感到困惑,因为如果提交了建议的负数,另一个 validateLongRange validator 将抛出一条消息,现在要求正确范围之间的数字。

出现第二条消息是因为 ConverterException当提交字符串被强制转换为 Long(支持 bean 属性的类型)和消息 javax.faces.component.UIInput.CONVERSION_MESSAGE_ID 时抛出。出现。

我可以以某种方式覆盖它吗(不适用于所有 ConverterException 情况,仅适用于特定的情况),或制作另一个 validateLongRange 的消息出现?

最佳答案

该消息实际上来自 javax.faces.converter.LongConverter.LONG_detail并且只有在您配置了 h:message(s) 后才会出现与 showSummary="false"showDetail="true" .否则默认(摘要)消息将是 javax.faces.converter.LongConverter.LONG这是 {2}: ''{0}'' must be a number consisting of one or more digits.这反过来更有意义。

如果更改消息详细信息显示也不是您所追求的,并且您确实希望转换器显示与 LongRangeValidator 完全相同的消息,那么最好的办法是提供一个自定义转换器来显示所需的消息。但是,您必须自己对消息进行硬编码,因为 JSF 不支持任何 API 工具来获取默认消息消息模板。

关于java - JSF 验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4166521/

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