这篇文章主要讲解了“如何验证后台参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何验证后台参数”吧!
以前在处理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; } } }
感谢各位的阅读,以上就是“如何验证后台参数”的内容了,经过本文的学习后,相信大家对如何验证后台参数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。