Я использую Hibernate Validator в качестве поставщика проверки JSR-303 и его описания ограничений стиля xml. Итак, у меня есть
<bean class="com.my.User" ignore-annotations="true">
<field name="email">
<constraint annotation="javax.validation.constraints.Pattern">
<element name="regexp"><![CDATA[[A-Za-z0-9\._%+-]{1,64}@[A-Za-z0-9.-]+\.[A-Za-
z]{2,4}]]></element>
</constraint>
</field>
.....
</bean>
У меня также есть отдельный класс, в котором собраны все мои шаблоны
public final class Regexps {
public static final String EMAIL_REGEXP = "A-Za-z0-9\._%+-]{1,64}@[A-Za-z0-9.-]+\.[A-
Za-z]{2,4}";
....
}
Итак, как видите, у меня есть два места, где присутствует регулярное выражение электронной почты, и мне нужно только одно место.
Мой вопрос: можно ли использовать
public static final String EMAIL_REGEXP = "A-Za-z0-9\._%+-]{1,64}@[A-Za-z0-9.-]+\.[A-
Za-z]{2,4}";
поле внутри xml, так что
Я мог бы просто обратиться к полю постоянной строки. Итак, я хотел бы иметь что-то вроде:
<bean class="com.my.User" ignore-annotations="true">
<field name="email">
<constraint annotation="javax.validation.constraints.Pattern">
<element name="regexp">Regexps.EMAIL_REGEXP</element>
</constraint>
</field>
.....
</bean>
Кстати, можно через аннотации
public class User {
@Pattern(regexp = Regexps.EMAIL_REGEXP)
private String email;
}
Но я не могу использовать аннотации, потому что я использую устаревшие POJO, которые я использую для передачи данных, и не могу изменить исходный код.