这篇文章主要讲解了“如何验证后台参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何验证后台参数”吧!
以前在处理web请求参数校验时,少不了类似下方的代码
if(age < 18) {
System.out.println("请输入正确的年龄(太小了)");
}
if(age > 100) {
System.out.println("请输入正确的年龄(太大了)");
}
if(name == null || name.trim().length() == 0) {
System.out.println("姓名不能未空");
}
if(name != null && (name.trim().length() < 2 || name.trim().length() > 20)) {
System.out.println("姓名长度错误");
}
可以用validation插件做,需要引入依赖:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.14.Final</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.0</version>
</dependency>
全部代码如下:
package test;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.constraints.*;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
public class ValidateTest {
public static void main(String[] args) {
UserInfo user = new UserInfo(0, "", "", null, "s");
System.out.println("---------- old method ----------");
oldMethod(user);
System.out.println("---------- new method ----------");
newMethod(user);
}
private static void oldMethod(UserInfo user) {
String name = user.getName();
int age = user.getAge();
List<String> tags = user.getTags();
if(age < 18) {
System.out.println("请输入正确的年龄(太小了)");
}
if(age > 100) {
System.out.println("请输入正确的年龄(太大了)");
}
if(name == null || name.trim().length() == 0) {
System.out.println("姓名不能未空");
}
if(name != null && (name.trim().length() < 2 || name.trim().length() > 20)) {
System.out.println("姓名长度错误");
}
if(tags.size() < 1 || tags.size() > 10) {
System.out.println("至少输入一个标签,最大支持10个标签");
}
for(String tag : tags) {
if(tag == null || tag.trim().length() == 0) {
System.out.println("标签内容不能为空");
}
}
}
private static void newMethod(UserInfo user) {
Set<ConstraintViolation<UserInfo>> errorSet = Validation.buildDefaultValidatorFactory().getValidator().validate(user);
errorSet.forEach(item-> {
System.out.println(item.getMessage());
});
}
static class UserInfo {
@Min(value = 18, message = "请输入正确的年龄(太小了)")
@Max(value = 100, message = "请输入正确的年龄(太大了)")
int age;
// @Pattern(regexp = "[a-z]|[A-Z]")
@NotBlank(message = "姓名不能为空")
@Size(min = 2, max = 20, message = "姓名长度错误")
String name;
@NotNull
@Size(min = 1, max = 10, message = "至少输入一个标签,最大支持10个标签")
List< @NotBlank(message = "标签内容不能为空") @Size(min = 1, max = 10, message = "标签内容长度限制1-10个字符") String> tags;
public UserInfo(int age, String name, String... tags) {
this.age = age;
this.name = name;
this.tags = Arrays.asList(tags);
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getTags() {
return tags;
}
public void setTags(List<String> tags) {
this.tags = tags;
}
}
}
感谢各位的阅读,以上就是“如何验证后台参数”的内容了,经过本文的学习后,相信大家对如何验证后台参数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!