这是JSF中具有validateLength验证器的输入字段的示例。
<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 :(得分:1)
除了你发现自己的方式外,另一种方法是:
扩展JSF LengthValidator
并在构造函数中设置默认值。
@FacesValidator("priceModelNameLengthValidator")
public class PriceModelNameLengthValidator extends LengthValidator {
public PriceModelNameLengthValidator() {
setMinimum(3);
setMaximum(45);
}
}
(如果必要的常量或配置设置,请制作那些神奇的数字)
并重复使用
<f:validator validatorId="priceModelNameLengthValidator" />
使用JSR 303 bean验证。
@Size(min=3, max=45)
private String priceModelName;