2012-10-09 91 views
2

这里是想什么我才达到的伪代码:添加自定义的验证动态

<h:inputText id="inputId"> 
    for -> validatorId : validatorIdArray 
    { 
      <f:validator for="inputId" validatorId="#{validatorId}"/> 
    } 
</h:inputText> 

我想自定义验证动态添加到我的输入组件。我有验证器名称存储在一个数组或List中,但到目前为止,我还没有设法弄清楚如何生成验证器标签。

最好我想要一个完整的Facelets解决方案。

+0

想不出你有一个超级验证使用反射调用想要的验证? ofc u没有得到任何东西在xhtml然后:( –

+0

我解决了它在我的答案中提到。但是,我看到你的答案的重点,我喜欢它我实际上可以使用UIComponent来确定类型,然后根据这个信息给一个具体的验证器也许也是有用的 –

回答

2

我试着首先使用<c:foreach>,但命名空间错了。 现在,我纠正它,它按预期工作:

<h:inputText id="inputId"> 
    <c:forEach items="#{validatorIdArray}" var="validatorId"> 
     <f:validator for="inputId" validatorId="#{validatorId}"/> 
    </c:forEach> 
</h:inputText> 
-1

尝试f:validateBean如果您正在使用JSF2

+0

事情是验证器的名字存储在数据库中,所以我应该用所有可能的验证组注释我的所有实体吗? –

+0

这不是你的情况,我认为... – sgpalit