• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

在JSF2中外部化/集中验证属性

validation 来源:Oh Chin Boon 6次浏览

这是JSF中具有validateLength验证程序的输入字段的示例。在JSF2中外部化/集中验证属性

<p:inputText id="priceModelName" size="30" 
    value="#{createPriceModelBackingBean.priceModel.priceModelName}" 
    required="true" label="#{labelResource.priceModelName}"> 
    <f:validateLength minimum="3" maximum="45" /> 
</p:inputText> 

priceModelName输入字段重复在另一个XHTML(create.xhtml和edit.xhtml),我想具有值为minimummaximum外部化/集中,以便它不再重复。有这样一个用例的好建议吗?

我正在考虑使用属性文件。

<f:validateLength minimum="#{validationResource.priceModel.minimum}" maximum="#{validationResource.priceModel.minimum}" /> 


===========解决方案如下:

除了这样,你发现了自己的另一方法是:

  1. 扩展JSF LengthValidator并设置在构造函数中的默认值。

    @FacesValidator("priceModelNameLengthValidator") 
    public class PriceModelNameLengthValidator extends LengthValidator { 
    
        public PriceModelNameLengthValidator() { 
         setMinimum(3); 
         setMaximum(45); 
        } 
    
    } 
    

    (如果必要的话常量或配置设置使这些神奇数字)

    和重用

    <f:validator validatorId="priceModelNameLengthValidator" /> 
    

  2. 使用JSR 303 Bean验证。

    @Size(min=3, max=45) 
    private String priceModelName; 
    

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)