以下是我在Stack Overflow上可以找到的4个相关帖子:
在这些帖子中,海报不知道他们为什么会收到此错误消息。在我的情况下,我知道为什么我有这个错误,我想更改默认“验证错误:值无效”消息让我们说“这是我的消息” 。我怎么能做到这一点?
PS1:我已经尝试了requiredMessage
,validatorMessage
和converterMessage
属性,但在这种特殊情况下没有一个被调用。
PS2:我正在使用RichFaces 4.1.0,因此我使用的下拉列表是rich:select
。
情境:
employee1
。employer1
,并通过下拉列表将其链接到employee1
。employee1
。employee1
不再可用。这种行为是我所期望的,但我只是想将默认消息更改为另一个,更多用户友好型。
答案 0 :(得分:2)
所有库存JSF消息都在您的JSF Distribution的javax.faces
包中。您正在寻找的是密钥javax.faces.component.UISelectone.INVALID
(或UISelectMany
)。修改此属性以获得所需的结果
答案 1 :(得分:2)
提供自定义转换器并将其作为转换器例外引发到getAsObject()
。
基本上,
@Override
public Object getAsObject(FacesContext context, UIComponent component, String submittedValue) {
if (submittedValue == null || submittedValue.isEmpty()) {
return null;
}
Employee employee = findEmployeeInDatabase(submittedValue);
if (employee == null) {
throw new ConverterException("Sorry, unknown employee.");
}
else {
return employee;
}
}
请注意,这也允许您使用converterMessage
。