使用Optional对前端传来的参数进行校验
时间: 2024-02-21 11:56:37 浏览: 25
可以使用Optional对前端传来的参数进行校验。Optional是Java 8引入的一个类,用于表示一个值存在或不存在的情况,可以有效避免NullPointerException异常的出现。
假设前端传来的参数是一个字符串,可以使用Optional对其进行校验:
```java
public void checkParam(String param) {
Optional<String> optional = Optional.ofNullable(param);
if (optional.isPresent()) {
// 参数不为null
String value = optional.get();
// 进行其他校验操作
} else {
// 参数为null
// 抛出异常或进行其他操作
}
}
```
在上面的代码中,首先使用Optional.ofNullable()方法将参数封装成Optional对象,然后使用isPresent()方法判断参数是否为null。如果参数不为null,可以使用get()方法获取参数的值进行其他校验操作;如果参数为null,则可以抛出异常或进行其他操作。
相关问题
使用Optional对前端传来的实体类进行校验
可以使用Optional对前端传来的实体类进行校验,具体步骤如下:
1. 首先在实体类中添加校验注解,例如@NotNull、@NotBlank、@Size等等,根据具体需求选择合适的注解。
2. 在Controller中接收前端传来的实体类时,使用Optional进行包装。
3. 使用Optional的ifPresent()方法对实体类进行校验,如果校验不通过则抛出异常或返回错误信息。
示例代码如下:
```java
@PostMapping("/users")
public ResponseEntity<?> createUser(@RequestBody Optional<User> userOptional) {
return userOptional.map(user -> {
// 校验用户名和密码是否为空
if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) {
throw new IllegalArgumentException("用户名和密码不能为空!");
}
// 校验通过则进行保存操作
userRepository.save(user);
return ResponseEntity.ok(user);
}).orElseThrow(() -> new IllegalArgumentException("用户信息不能为空!"));
}
```
在上述代码中,使用Optional包装了前端传来的User实体类,然后使用ifPresent()方法对用户名和密码进行校验,如果校验不通过则抛出异常,否则进行保存操作。如果Optional中没有数据,则直接返回错误信息。
如何对获取的参数进行非空校验?
对获取的参数进行非空校验可以使用Java中的字符串工具类,如Apache Commons Lang中的StringUtils类,或者使用Java8中的Optional类。下面是使用StringUtils类对获取的参数进行非空校验的示例代码:
```
String usernum = request.getParameter("usernum");
String stime = request.getParameter("stime");
String sum = request.getParameter("people");
if (StringUtils.isBlank(usernum) || StringUtils.isBlank(stime) || StringUtils.isBlank(sum)) {
// 参数为空,进行相应的处理
} else {
// 参数不为空,进行后续操作
}
```
在上述代码中,使用StringUtils.isBlank()方法对获取到的参数进行非空校验,如果参数为空,返回true,否则返回false。如果有任何一个参数为空,则可以进行相应的处理,例如返回错误信息。如果所有参数都不为空,则可以进行后续的操作。