【问题标题】:Adding custom validators dynamically动态添加自定义验证器
【发布时间】:2012-09-29 21:44:47
【问题描述】:

这是我想要实现的伪代码:

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

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

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

【问题讨论】:

  • 你不能有一个超级验证器使用反射调用想要的验证器吗? ofc 你在 xhtml 中什么也得不到 :(
  • 我解决了它,如我的回答中所述。但。我明白你的回答的重点,我喜欢它。我实际上可以使用 UIComponent 来确定类型,然后根据此信息委托给特定的验证器。可能也有用!

标签: validation jsf facelets


【解决方案1】:

我首先尝试使用&lt;c:foreach&gt;,但命名空间错误。 现在我纠正了它,它按预期工作:

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

【讨论】:

    【解决方案2】:

    如果您使用的是 JSF2,请尝试 f:validateBean

    【讨论】:

    • 问题是验证器的名称存储在数据库中。那么我应该用所有可能的验证组来注释我的所有实体吗?
    猜你喜欢
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    相关资源
    最近更新 更多