1

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

在这些帖子中,发帖者不知道他们为什么会收到此错误消息。就我而言,我确实知道为什么会出现此错误,并且我想将默认的“验证错误:值无效”消息更改为“这是我的消息”。我怎么能做到这一点?

PS1:我已经尝试过requiredMessage,validatorMessageconverterMessage属性,但是在这种特殊情况下它们都没有被调用。

PS2:我使用的是 RichFaces 4.1.0,所以我使用的下拉列表就是rich:select其中之一。


设想:

  1. 我有两个实体,例如雇主和雇员。
  2. 我创建了员工employee1
  3. 我想创建雇主employer1,并employee1通过下拉列表将其链接到。
  4. 在提交雇主创建表格之前employee1,我从数据库中删除了。
  5. 然后,我提交雇主创建表格:所述消息出现在下拉列表旁边,因为employee1不再可用。

这种行为是我所期望的,但我只是想将默认消息更改为另一个更用户友好的消息。

4

2 回答 2

2

所有库存 JSF 消息都在javax.faces您的 JSF 分发包中。您正在寻找的那个是钥匙javax.faces.component.UISelectone.INVALID(或UISelectMany)。修改这个属性得到你想要的结果

于 2013-02-19T15:58:22.983 回答
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.

于 2013-02-19T16:14:39.123 回答