JSF 中的客户特定验证

Customer specific validation in JSF

我的业务要求是在 JSF 中执行特定于客户的验证。这意味着,在同一个屏幕上,同一字段可能对一个客户是必填的,而对另一个客户不是必填的。

我正在考虑在 jsf 中实现自定义验证器并从 UIComponent 读取字段名称,以便我可以将它们与外部配置文件中存在的字段进行比较。这些配置文件将包含每个客户需要配置的字段。

有没有更好的方法来实现这个?感谢您的意见。

我对多客户应用程序有相同的要求:管理站点上的客户定义指定页面(持卡人站点)上哪些字段是必填字段。标志("is mandatory" 或 "is not mandatory")存储在数据库中(在所有客户通用的配置 table 中)。检查页面上的必填字段是

<h:outputLabel for="firstname" value="#{msg.firstname}">
    <h:outputText value=" *" class="required"
        rendered="#{profileAction.isRequired('PF_FIRSTNAME')}" />
</h:outputLabel>
<h:inputText id="firstname" label="#{msg.firstname}"
    value="#{registrationForm.firstName}"
    size="40" maxlength="40" autocomplete="off"
    required="#{profileAction.isRequired('PF_FIRSTNAME')}" />

检查方法是

public boolean isRequired(String attributeName) {
    return profiler.isFieldRequired(customerFromSession, attributeName);
}