2013-08-04 53 views
1

這是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}" /> 
+0

到底是什麼問題,當你嘗試呢? – BalusC

+0

嗨Balus,沒有遇到任何問題。但是有沒有更好的方法來做到這一點? –

回答

1

除了這樣,你發現了自己的另一方法是:

  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

謝謝Balus分享這些信息。 –