如果在数据表中使用自定义组件,验证失败的原因?

时间:2011-03-17 13:17:57

标签: validation jsf icefaces

我有一个非常奇怪的问题。

如果我直接使用原始组件,那么数据表中所需的验证效果很好:

<ice:inputText id="inputTextt" field="#{bean[fieldValue]}" required="true"/>
<ice:message for="inputTextt"></ice:message>
当我按下按钮以发布表单时,

将引发所需的消息。

好吧,我有一个自定义组件 gra:inputTextValidated ,其中我放了相同的东西,但有点复杂:

<ice:inputText
        id="#{id}"
        value="#{bean[field]}"
        rendered="#{rendered and empty validatorBean}"
        styleClass="#{styleClass} #{not required ? 'graNotRequired':''}"
        style="width: #{width};height:#{height}"
        partialSubmit="#{partialSubmit}"
        disabled="#{disabled}"
        required="#{required}">
    </ice:inputText>
    <ice:message
        styleClass="graValidationMessage graNotRequired"
        for="#{id}" />

所以现在,从我正在调用我的组件的数据表中:

 <gra:inputTextValidated
                        id="inputText"
                        bean="#{bean}"
                        field="#{fieldValue}"
                        renderLabel="false"
                        required="true"
                        disabled="#{disabled}"
                        width="90%"
                        height="#{secondTabComponentsHeight}"
                        >
                    </gra:inputTextValidated>

现在不再出现验证消息。 gra:inputTextValidated组件工作正常,值被渲染,因此它只是验证的问题。

我已经花了大约3个小时在这上面并且我非常肯定它是关于ID的东西,某种方式是ice的属性:消息没有正确地从自定义组件中看到我的输入文本(但它存在,作为垃圾邮件呈现)。

你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

解决。

以上代码正常运作。