实体类中 @notblank()注解 message 怎么返回
时间: 2023-09-18 14:02:41 浏览: 298
在实体类中使用@NotBlank注解时,message属性用于指定校验失败时返回的错误信息。@NotBlank注解用于校验字符串是否为空,如果为空则校验失败。
当校验失败时,message属性会返回对应的错误信息。我们可以通过在实体类中使用@NotBlank注解时对message属性进行赋值来自定义错误信息。例如:
```java
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
// 省略其他属性和方法
}
```
在以上代码中,如果username属性为空,校验就会失败,并且会返回"用户名不能为空"的错误信息。
需要注意的是,如果不指定message属性的值,默认会使用Hibernate Validator提供的默认错误信息。若想使用自定义的错误信息,可以使用@NotBlank(message = "自定义错误信息")来进行设置。
这样在校验过程中,如果username属性为空,校验就会失败,并返回我们自定义的错误信息,而不是默认的错误信息。
相关问题
@PostMapping("/addMenu") public AjaxResult addMenu(@RequestBody List<Menu> menus) { menuService.addMenu(menus); return AjaxResult.success(); }前端传{ "menus": [{ "name": "红烧土豆", "price": 10.11 },{ "name": "清蒸鲫鱼", "price": 25.11 }] }实体类是@Data public class Menu{ private Integer id; @NotBlank(message = "菜品名称不能为空") private String name; @NotNull(message = "菜品价格不能为空") private BigDecimal price;
这段代码是一个基于Spring Boot框架的后端接口,实现了添加菜单的功能。前端通过POST请求传递一个包含菜单信息的JSON对象,包含了菜品名称和价格两个字段,后端通过@RequestBody注解将其转换为Menu实体类的List对象进行处理。在实体类中,id字段可以为空,name字段不能为空,price字段不能为空且为BigDecimal类型。最后返回一个AjaxResult对象,表示请求成功。
@NotBlank不生效
@NotBlank注解用于验证字符串类型的属性是否为空或者只包含空格。如果@NotBlank注解不生效,可能是以下几个原因:
1. 引入的注解包不正确:@NotBlank注解有两个来源,一个是javax.validation.constraints.NotBlank,另一个是org.hibernate.validator.constraints.NotBlank。确保在实体类中使用的是正确的注解包。
2. 控制器层未使用@Valid注解:当@NotBlank注解用于实体类的某个属性时,需要在控制器层的实体对象前添加@Valid注解,以触发验证过程。
以下是一个示例代码,演示了@NotBlank注解的使用:
```java
import javax.validation.constraints.NotBlank;
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
// getter and setter
}
@RestController
public class UserController {
@PostMapping("/users")
public void createUser(@Valid @RequestBody User user) {
// 处理用户创建逻辑
}
}
```
在上述示例中,@NotBlank注解用于验证User类中的username属性是否为空或者只包含空格。在UserController中的createUser方法中,使用@Valid注解触发验证过程。
阅读全文