2017-04-16 8 views
2

Ich sende eine POST-Anfrage von "Application/Json" -Typ mit 「Postboten」, setzen Sie den Parameter "Telefon" auf leere Zeichenfolge, normalerweise sollte es Fehler für die Anmerkung "@NotEmpty" jedoch drucken Es hat nichts gedruckt und funktioniert gut.spring @valid funktioniert nicht

Controller:

@RequestMapping(value = "verify_smscode", method = RequestMethod.POST) 
    @ResponseBody 
    public ResponseDto verifySmsCode(HttpServletRequest request, 
     @Valid @RequestBody VerifySmsCodeParam params, Errors errors) { 
    if(errors.hasErrors()) { 
     System.out.println("error"); 
    } 

    boolean success = userService.verifySmsCode(params.getPhone(), params.getSmsCode()); 

    Map<String, Object> result = new HashMap<>(); 
    result.put("status", success); 
    return new ResponseDto(result); 
    } 

Modell:

@Data 
@NoArgsConstructor 
public class VerifySmsCodeParam { 

    @NotEmpty //import org.hibernate.validator.constraints.NotEmpty; 
    private String phone; 

    @NotEmpty 
    private String smsCode; 
} 

SpringMvcConfig:

@Configuration 
@ComponentScan(basePackages="com.shit.voiceshare") 
@EnableWebMvc 
public class SpringMvcConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public Validator getValidator() { 
    LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean(); 
    localValidatorFactoryBean.setProviderClass(HibernateValidator.class); 
    return localValidatorFactoryBean; 
    } 
} 
+0

haben Sie versucht, mit 'BindingResult'. [Diese] (https://spring.io/guides/gs/validating-form-input/) ein gutes Beispiel für die Verwendung dieses Ansatzes sein kann. –

+0

versuchen zu verwenden Validated statt Valid –

+0

Es funktioniert immer noch nicht – rush

Antwort

0

Am, ich bin noch neu im Frühjahr. Aber hier ist eine Antwort für meine Situation, wenn es Ihnen passt.

Um @Valid arbeiten zu können, sollten Sie zwei Pakete javax validation-api und hibernate-validator verwenden, aber ich habe nur validation-api eingeschlossen.

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>2.0.0.Final</version> 
</dependency> 

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-validator</artifactId> 
    <version>6.0.1.Final</version> 
</dependency> 
Verwandte Themen