自定义JSF验证器中的格式消息

时间:2013-01-11 10:01:56

标签: java validation jsf jsf-2 custom-component

我正在实施自定义验证器。存储在资源中的消息的详细信息。以下是邮件的示例:Value is required for {0}。 {0}应包含组件的标签。

@FacesValidator("customValidator")
public class CustomValidator implements Validator {

    @Override
    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
    if (validatorCondition()) {
            String summary = Res.getString("error");
            String detail =  ... format detail here
            throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, detail));
        } 
    }
}

如何格式化validate方法中显示的消息?

1 个答案:

答案 0 :(得分:1)

使用MessageFormat#format()

String template = "Value is required for {0}.";
String label = component.getAttributes().get("label"); // Don't forget to handle nulls. JSF defaults to client ID.
String message = MessageFormat.format(template, label);
// ...