2012-10-09 109 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