当组件在<ui:repeat>中时,input.setValid(false)没有任何效果

时间:2015-09-09 12:19:52

标签: jsf jsf-2 uirepeat

我需要将使用ui:repeat生成的inputText字段标记为无效。我可以通过在bean中使用以下代码来为普通输入字段执行此操作:

 UIComponent root = context.getViewRoot();
 UIInput inputFieldObj = obj.findComponent(root, id);
 inputFieldObj .setValid(false);

上面的代码正在运行,但是当我尝试获取使用ui:repeat生成的组件时。它没有将文本字段标记为无效。

所以对于下面的代码,它的工作原理是:

<p:inputText id="txtEmpId12" /> 

但为此不是:

<ui:repeat>
    <p:inputText id="txtEmpId" />   
</ui:repeat>

1 个答案:

答案 0 :(得分:0)

这是因为在您的场景中,组件树只包含一个输入。 Ui:repeat在呈现阶段呈现输入。作为解决方法,您可以使用c:forEach。在这种情况下,组件树将包含所有输入。但我不喜欢这种方法。