4

사용자 지정 메시지 보간을 작성합니다. JPA에서 내 사용자 지정 메시지 보간을 사용하기를 원합니다. 여기 http://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html/validator-bootstrapping.html#section-message-interpolator 다음 설명을 찾았습니다 :최대 절전 모드로 사용자 지정 메시지 보간을 구성하는 방법은 무엇입니까?

Configuration<?> configuration = Validation.byDefaultProvider().configure(); 
ValidatorFactory factory = configuration 
    .messageInterpolator(new ValueFormatterMessageInterpolator(configuration.getDefaultMessageInterpolator())) 
    .buildValidatorFactory(); 

Validator validator = factory.getValidator(); 

그러나 어디에서 그런 코드를 작성해야합니까? init-servlet의 web.xml에 있습니까? persistance.xml에 그러한 코드를 제공 할 수 있습니까?

P. & 코드를 붙여 넣습니다. 내 경우 줄에

ValueFormatterMessageInterpolator(configuration.getDefaultMessageInterpolator())) 

CustomMessageInterpolator(configuration.getDefaultMessageInterpolator())) 

같은에서 변화 할 것을 JSR-303 콩 검증 프레임 워크는 XML을 통해 validatation 프레임 워크를 구성 할 수있는 가능성을 제공 또한 How do I dynamically resolve message parameters with Hibernate Validator?

답변

0

을 볼 수 있습니다.

예. META-INF/validation.xml

장 참조

4.4.6. XML 구성 : META-INF/validation.xml 자세한 내용은 사양의

: http://download.oracle.com/otndocs/jcp/bean_validation-1.0-fr-oth-JSpec/

4.4.6. XML 구성 : META-INF/validation.xml

<?xml version="1.0" encoding="UTF-8"?> 
<validation-config 
    xmlns="http://jboss.org/xml/ns/javax/validation/configuration" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd"> 
    <default-provider>com.acme.ACMEProvider</default-provider> 
    <message-interpolator>com.acme.ACMEAwareMessageInterpolator</message-interpolator> 
    <constraint-mapping>META-INF/validation/order-constraints.xml</constraint-mapping> 
    <constraint-mapping>META-INF/validation/catalog-constraints.xml</constraint-mapping> 
    <constraint-mapping>META-INF/validation/customer-constraints.xml</constraint-mapping> 
    <property name="com.acme.validation.logging">WARN</property> 
    <property name="com.acme.validation.safetyChecking">failOnError</property> 
</validation-config> 

패키지 당신의 영속 항아리 (META-INF/validation.xml) 및 작동해야하는 XML 파일입니다.

배포 패키지 (예 : EAR)에 따라 EAR의 lib 폴더에있는 공유 라이브러리에 배치해야 할 수도 있습니다.

최대 절전 모드 문서는 말한다 : 최대 절전 모드 검사기가 파일 validation.xml 때문이다

의 핵심은 XML 구성을 가능하게 할 수 있습니다. 이 파일이 클래스 경로에 존재하면 ValidationFactory가 생성 될 때 구성이 적용됩니다. 예제 4.1, "validation-configuration-1.0.xsd"는 xsd valiation.xml을 준수해야하는 의 모델 뷰를 보여줍니다.

http://docs.jboss.org/hibernate/validator/4.0.1/reference/en/html_single/#d0e1867

+0

내가 JPA와 함께 할 수있는 방법/최대 절전 모드? – alexsmail

+0

내 대답을 업데이트했습니다. 클래스 패스에 배치해야한다고 생각합니다. 그러면 유효성 검사 프레임 워크에 의해 선택됩니다. 그럼에도 불구하고 여전히 유효성 검사기를 만들고 XML 구성을 무시할 수 있습니다. –

관련 문제