2013-08-04 3 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), я хотел бы иметь значения для minimum и maximum экстернализированы/централизовано, так что он не повторяется. Есть ли хорошая рекомендация для такого случая использования?

Я думал, вероятно, используя файл свойств.

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

Что именно проблема, когда вы пытаетесь так? – BalusC

+0

Привет, Балус, не попал ни в какую проблему. Но есть ли лучшие способы сделать это? –

ответ

1

Кроме того, как вы выяснили сами, еще пути являются:

  1. Расширение JSF LengthValidator и установить значения по умолчанию в конструкторе.

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

    (сделать эти магические числа при необходимости постоянные или настройки конфигурации)

    и использовать его

    <f:validator validatorId="priceModelNameLengthValidator" /> 
    

  2. Использование JSR 303 проверки компонента.

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

Спасибо, Balus за эту информацию. –

Смежные вопросы