1

カスタムバリデーターを実装しています。リソースに保存されているメッセージの詳細。メッセージの例を次に示します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メソッドに表示されるメッセージをフォーマットするにはどうすればよいですか?

4

1 に答える 1

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);
// ...
于 2013-01-11T12:26:08.670 に答える