如何更改默认的“验证错误:值无效”消息?

时间:2013-02-19 15:38:58

标签: java jsf validation message default-value

以下是我在Stack Overflow上可以找到的4个相关帖子:

在这些帖子中,海报不知道他们为什么会收到此错误消息。在我的情况下,我知道为什么我有这个错误,我想更改默认“验证错误:值无效”消息让我们说“这是我的消息” 。我怎么能做到这一点?

PS1:我已经尝试了requiredMessagevalidatorMessageconverterMessage属性,但在这种特殊情况下没有一个被调用。

PS2:我正在使用RichFaces 4.1.0,因此我使用的下拉列表是rich:select


情境:

  1. 我有两个实体,例如雇主和雇员。
  2. 我创建了员工employee1
  3. 我想创建雇主employer1,并通过下拉列表将其链接到employee1
  4. 在提交雇主创建表单之前,我从数据库中删除了employee1
  5. 然后,我提交了雇主创建表单:所述消息显示在下拉列表旁边,因为employee1不再可用。
  6. 这种行为是我所期望的,但我只是想将默认消息更改为另一个,更多用户友好型

2 个答案:

答案 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