日々精進

新しく学んだことを書き留めていきます

JSFのValidatorにパラメータを渡す

以下のようにf:attributeタグを使ってオブジェクトをValidatorに渡せる。

<h:inputText>
    <f:validator validatorId="validateEmail" />
    <f:attribute name="foo" value="bar" />
</h:inputText>

Validatorのコードでは以下のようにしてオブジェクトを取得する。

    @Override
    public void validate(final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
        final Map<String, Object> a = component.getAttributes();
        String foo = (String) a.get("foo");

        ...
    }

参考: