JSF 2.0中的复合组件验证

时间:2012-06-03 21:05:05

标签: validation jsf-2 facelets composite-component

我在JSF 2.0中有复合组件

<composite:interface>
    <composite:attribute name="inputId"/>
    <composite:attribute name="labelValue"/>
    <composite:attribute name="inputValue" />
    <composite:attribute name="required" />
    <composite:attribute name="requiredMessage" />
</composite:interface>
<composite:implementation>
    <div class="control-group">
        <h:outputLabel for="#{cc.attrs.inputId}" value="#{cc.attrs.labelValue}" class="control-label" />
        <div class="controls">
            <h:inputText id="#{cc.attrs.inputId}" value="#{cc.attrs.inputValue}" required="#{cc.attrs.required}" requiredMessage="#{cc.attrs.requiredMessage}" />
        </div>
    </div>
</composite:implementation>

我需要对它进行一些验证(是数字,长度验证等) 那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

您需要在<cc:interface>中定义要作为<cc:editableValueHolder>附加验证码的所需输入。

<cc:interface>
    <cc:editableValueHolder name="input" targets="#{cc.attrs.inputId}" />
    ...
</cc:interface>

该标记基本上告知必须在<f:validator for="input">组件上应用任何UIInputidtargets中指定的<my:input ...> <f:validateLength for="input" ... /> </my:input> 相同。那么,您可以按如下方式注册:

{{1}}