@NotBlank如何获取message
时间: 2024-06-06 21:06:10 浏览: 209
@NotBlank是一个注解,用于验证字符串不能为空或者空格。它并不是获取message的方法,而是用来在代码中加入注解,以便在对字符串进行验证时使用。如果你想获取message,你可以在代码中使用@NotBlank注解,并在其中指定message参数来设置错误提示信息,例如:@NotBlank(message="用户名不能为空")。当对这个字符串进行验证时,如果字符串为空或者只包含空格,就会返回设置的错误提示信息。
相关问题
@NotBlank 没有message
`@NotBlank` 是Spring Boot Validation注解库中的一个验证规则,用于检查字段是否为空,即非空值。默认情况下,如果验证失败,它会提供一个预定义的消息,例如 "field must not be blank"。如果你发现`@NotBlank` 没有自定义消息,这通常意味着你没有显式地设置 `message` 属性或使用了默认的行为。
要在`@NotBlank`上添加自定义错误信息,你可以这样做:
```java
import javax.validation.constraintsNotBlank;
import javax.validation.ConstraintValidatorContext;
public class CustomNotBlankConstraint implements ConstraintValidator<NotBlank, String> {
private String message = "请输入有效内容";
@Override
public void initialize(NotBlank annotation) {
// 初始化在这里可以设置默认或自定义消息
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value != null && !value.trim().isEmpty()) {
return true;
}
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate(message).addConstraintViolation();
return false;
}
}
```
然后在需要验证的地方使用这个自定义约束:
```java
class MyObject {
@CustomNotBlank(message = "custom message")
private String myField;
}
```
如果没有显式设置`message`属性,那么默认的Spring Boot验证消息就会被显示。
有一个数据库(rouble_personnel_pool),实体类为RoublePersonnelPool的字段参数类型有numbleId(序号),roubleUnit(隶属单位),roubleBumen(部门),roubleName(人员名称),roubleID(编号),而且都是string类型。以下是model层 @Data @Entity @Table(name = "rouble_personnel_pool") @EqualsAndHashCode(callSuper = true) public class RoublePersonnelPool extends BaseEntity { private static final long serialVersionUID = 1L; /** * 序号 */ @Column(name = "number_id") @ApiModelProperty("序号") @NotBlank(message = "序号不能为空") private String numberId; /** * 隶属单位 */ @Column(name = "rouble_unit") @ApiModelProperty("隶属单位") @NotBlank(message = "隶属单位不能为空") private String roubleUnit; /** * 部门 */ @Column(name = "rouble_bumen") @ApiModelProperty("部门") @NotBlank(message = "部门不能为空") private String roubleBumen; /** * 人员名称 */ @Column(name = "rouble_name") @ApiModelProperty("人员名称") @NotBlank(message = "人员名称不能为空") private String roubleName; /** * 编号 */ @Column(name = "rouble_ID") @ApiModelProperty("编号") @NotBlank(message = "编号不能为空") private String roubleID; } 帮我完成接口实现类和controller层,要求里面要有RoublePersonnelPoolRepository类并且extends BaseRepository<RoubleObjectPool,String>。 帮我写一套增删改查。
接口实现类和控制器层的代码如下:
RoublePersonnelPoolRepository.java:
```java
@Repository
public interface RoublePersonnelPoolRepository extends BaseRepository<RoubleObjectPool, String> {
}
```
RoublePersonnelPoolServiceImpl.java:
```java
@Service
public class RoublePersonnelPoolServiceImpl implements RoublePersonnelPoolService {
private final RoublePersonnelPoolRepository roublePersonnelPoolRepository;
@Autowired
public RoublePersonnelPoolServiceImpl(RoublePersonnelPoolRepository roublePersonnelPoolRepository) {
this.roublePersonnelPoolRepository = roublePersonnelPoolRepository;
}
@Override
public RoublePersonnelPool getById(String id) {
return roublePersonnelPoolRepository.findById(id).orElse(null);
}
@Override
public List<RoublePersonnelPool> getAll() {
return roublePersonnelPoolRepository.findAll();
}
@Override
public RoublePersonnelPool create(RoublePersonnelPool roublePersonnelPool) {
return roublePersonnelPoolRepository.save(roublePersonnelPool);
}
@Override
public RoublePersonnelPool update(String id, RoublePersonnelPool roublePersonnelPool) {
RoublePersonnelPool existingRoublePersonnelPool = getById(id);
if (existingRoublePersonnelPool != null) {
existingRoublePersonnelPool.setNumberId(roublePersonnelPool.getNumberId());
existingRoublePersonnelPool.setRoubleUnit(roublePersonnelPool.getRoubleUnit());
existingRoublePersonnelPool.setRoubleBumen(roublePersonnelPool.getRoubleBumen());
existingRoublePersonnelPool.setRoubleName(roublePersonnelPool.getRoubleName());
existingRoublePersonnelPool.setRoubleID(roublePersonnelPool.getRoubleID());
return roublePersonnelPoolRepository.save(existingRoublePersonnelPool);
}
return null;
}
@Override
public boolean delete(String id) {
RoublePersonnelPool existingRoublePersonnelPool = getById(id);
if (existingRoublePersonnelPool != null) {
roublePersonnelPoolRepository.delete(existingRoublePersonnelPool);
return true;
}
return false;
}
}
```
RoublePersonnelPoolController.java:
```java
@RestController
@RequestMapping("/rouble-personnel-pool")
public class RoublePersonnelPoolController {
private final RoublePersonnelPoolService roublePersonnelPoolService;
@Autowired
public RoublePersonnelPoolController(RoublePersonnelPoolService roublePersonnelPoolService) {
this.roublePersonnelPoolService = roublePersonnelPoolService;
}
@GetMapping("/{id}")
public ResponseEntity<RoublePersonnelPool> getById(@PathVariable String id) {
RoublePersonnelPool roublePersonnelPool = roublePersonnelPoolService.getById(id);
if (roublePersonnelPool != null) {
return ResponseEntity.ok(roublePersonnelPool);
}
return ResponseEntity.notFound().build();
}
@GetMapping
public ResponseEntity<List<RoublePersonnelPool>> getAll() {
List<RoublePersonnelPool> roublePersonnelPools = roublePersonnelPoolService.getAll();
if (!roublePersonnelPools.isEmpty()) {
return ResponseEntity.ok(roublePersonnelPools);
}
return ResponseEntity.noContent().build();
}
@PostMapping
public ResponseEntity<RoublePersonnelPool> create(@RequestBody RoublePersonnelPool roublePersonnelPool) {
RoublePersonnelPool createdRoublePersonnelPool = roublePersonnelPoolService.create(roublePersonnelPool);
if (createdRoublePersonnelPool != null) {
return ResponseEntity.ok(createdRoublePersonnelPool);
}
return ResponseEntity.badRequest().build();
}
@PutMapping("/{id}")
public ResponseEntity<RoublePersonnelPool> update(@PathVariable String id, @RequestBody RoublePersonnelPool roublePersonnelPool) {
RoublePersonnelPool updatedRoublePersonnelPool = roublePersonnelPoolService.update(id, roublePersonnelPool);
if (updatedRoublePersonnelPool != null) {
return ResponseEntity.ok(updatedRoublePersonnelPool);
}
return ResponseEntity.notFound().build();
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> delete(@PathVariable String id) {
boolean deleted = roublePersonnelPoolService.delete(id);
if (deleted) {
return ResponseEntity.noContent().build();
}
return ResponseEntity.notFound().build();
}
}
```
请注意,这只是一个基本的示例,你可能需要根据你的业务逻辑进行相应的修改和调整。
阅读全文