Hibernate Validator: использование констант в файле limiteds.xml

Я использую 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, которые я использую для передачи данных, и не могу изменить исходный код.


person Fevzi    schedule 06.12.2013    source источник
comment
В качестве ссылки hibernate.atlassian.net/browse/HV-839   -  person Hardy    schedule 11.12.2013


Ответы (1)


В настоящее время невозможно ссылаться на ограничения из ограниченных отображений XML. Я думаю, что это хорошая идея. Не могли бы вы открыть запрос функции в нашем системе отслеживания проблем, чтобы мы могли обсудить эту функцию там?

Если вы не можете использовать аннотации, вы можете предоставить Hibernate Validator API для объявления программных ограничений, вы сможете работать с общей константой для шаблона.

person Gunnar    schedule 06.12.2013