Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 如果在数据表中使用自定义组件,为什么验证会失败?_Validation_Jsf_Icefaces - Fatal编程技术网

Validation 如果在数据表中使用自定义组件,为什么验证会失败?

Validation 如果在数据表中使用自定义组件,为什么验证会失败?,validation,jsf,icefaces,Validation,Jsf,Icefaces,我有一个很奇怪的问题 如果我直接使用原始组件,则数据表中所需的验证非常有效,例如: <ice:inputText id="inputTextt" field="#{bean[fieldValue]}" required="true"/> <ice:message for="inputTextt"></ice:message> 当我按下按钮发布表单时,将引发所需消息 嗯,我有一个自定义组件gra:inputTextValidated,我在其中放置了相同的东

我有一个很奇怪的问题

如果我直接使用原始组件,则数据表中所需的验证非常有效,例如:

<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}" />

现在,我从datatable调用我的组件,如下所示:

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

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

我花了大约3个小时在这上面,我非常确定这是关于ID的问题,不知何故,ice:message的for属性没有正确地从自定义组件中看到我的输入文本(但它在那里,呈现为垃圾邮件)

你有什么建议吗?

已解决

上述代码正在运行