javax.validation.constraints 不适用于 Spring 网络
javax.validation.constraints does not work with Spring web
这是我的控制器:
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@RequestMapping("/auth-api")
public class AuthController {
@PostMapping("/register")
public RequestResultJSON<String> register(@RequestParam @NotEmpty String username,
@RequestParam @NotEmpty String password,
@RequestParam @NotEmpty String passwordConfirm);
我在 pom.xml 文件
中使用了这个依赖项
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
当我发出 post 请求时,我希望方法不会执行,但它会在参数不正确的情况下发生
要求:http://localhost:8080/auth-api/register?username&password&passwordConfirm
注册方法执行用户名="", password="", passwordConfirm=""
您需要在您的控制器上添加 @Validated
注释,以标记它已通过验证。
@Slf4j
@Validated
@RestController
@RequestMapping("/auth-api")
public class AuthController {
// your code
}
此外,您必须确保在您的类路径中有一个类似于 hibernate-validator
的验证器实现。
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.10.Final</version>
</dependency>
如果不存在,您可以在 pom.xml 或 here
中的任何其他合适的版本中添加上述依赖项
这是我的控制器:
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@RequestMapping("/auth-api")
public class AuthController {
@PostMapping("/register")
public RequestResultJSON<String> register(@RequestParam @NotEmpty String username,
@RequestParam @NotEmpty String password,
@RequestParam @NotEmpty String passwordConfirm);
我在 pom.xml 文件
中使用了这个依赖项<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
当我发出 post 请求时,我希望方法不会执行,但它会在参数不正确的情况下发生
要求:http://localhost:8080/auth-api/register?username&password&passwordConfirm
注册方法执行用户名="", password="", passwordConfirm=""
您需要在您的控制器上添加 @Validated
注释,以标记它已通过验证。
@Slf4j
@Validated
@RestController
@RequestMapping("/auth-api")
public class AuthController {
// your code
}
此外,您必须确保在您的类路径中有一个类似于 hibernate-validator
的验证器实现。
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.10.Final</version>
</dependency>
如果不存在,您可以在 pom.xml 或 here
中的任何其他合适的版本中添加上述依赖项