当前位置: 首页 > news >正文

网站建设找盖亚科技网站开发过程中遇到的问题

网站建设找盖亚科技,网站开发过程中遇到的问题,瑞金网站建设推广,企业网站 联系我们Java注解Annotation用起来很方便#xff0c;也越来越流行#xff0c;由于其简单、简练且易于使用等特点#xff0c;很多开发工具都提供了注解功能#xff0c;不好的地方就是代码入侵比较严重#xff0c;所以使用的时候要有一定的选择性。 这篇文章将利用注解#xff0c;来… Java注解Annotation用起来很方便也越来越流行由于其简单、简练且易于使用等特点很多开发工具都提供了注解功能不好的地方就是代码入侵比较严重所以使用的时候要有一定的选择性。 这篇文章将利用注解来做一个Bean的数据校验。 下载 http://download.csdn.net/download/hanghangaidoudou/10139375 项目结构  定义注解 该注解可以验证成员属性是否为空长度提供了几种常见的正则匹配也可以使用自定义的正则去判断属性是否合法同时可以为该成员提供描述信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 package org.xdemo.validation.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.xdemo.validation.RegexType; /**  * 数据验证  * author Goofy  */ Retention(RetentionPolicy.RUNTIME) Target({ElementType.FIELD,ElementType.PARAMETER}) public interface DV {           //是否可以为空     boolean nullable() default false;           //最大长度     int maxLength() default 0;           //最小长度     int minLength() default 0;           //提供几种常用的正则验证     RegexType regexType() default RegexType.NONE;           //自定义正则验证     String regexExpression() default ;           //参数或者字段描述,这样能够显示友好的异常信息     String description() default ; } 注解的解析 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 package org.xdemo.validation.annotation.support; import java.lang.reflect.Field; import org.xdemo.validation.RegexType; import org.xdemo.validation.annotation.DV; import org.xdemo.validation.utils.RegexUtils; import org.xdemo.validation.utils.StringUtils; /**  * 注解解析  * author Goofy  */ public class ValidateService {           private static DV dv;           public ValidateService() {         super();     }           //解析的入口     public static void valid(Object object) throws Exception{         //获取object的类型         Class? extends Object clazzobject.getClass();         //获取该类型声明的成员         Field[] fieldsclazz.getDeclaredFields();         //遍历属性         for(Field field:fields){             //对于private私有化的成员变量通过setAccessible来修改器访问权限             field.setAccessible(true);             validate(field,object);             //重新设置会私有权限             field.setAccessible(false);         }     }                 public static void validate(Field field,Object object) throws Exception{         String description;         Object value;         //获取对象的成员的注解信息         dvfield.getAnnotation(DV.class);         valuefield.get(object);                   if(dvnull)return;                   descriptiondv.description().equals()?field.getName():dv.description();                   /*************注解解析工作开始******************/         if(!dv.nullable()){             if(valuenull||StringUtils.isBlank(value.toString())){                 throw new Exception(description不能为空);             }         }                   if(value.toString().length()dv.maxLength()dv.maxLength()!0){             throw new Exception(description长度不能超过dv.maxLength());         }                   if(value.toString().length()dv.minLength()dv.minLength()!0){             throw new Exception(description长度不能小于dv.minLength());         }                   if(dv.regexType()!RegexType.NONE){             switch (dv.regexType()) {                 case NONE:                     break;                 case SPECIALCHAR:                     if(RegexUtils.hasSpecialChar(value.toString())){                         throw new Exception(description不能含有特殊字符);                     }                     break;                 case CHINESE:                     if(RegexUtils.isChinese2(value.toString())){                         throw new Exception(description不能含有中文字符);                     }                     break;                 case EMAIL:                     if(!RegexUtils.isEmail(value.toString())){                         throw new Exception(description地址格式不正确);                     }                     break;                 case IP:                     if(!RegexUtils.isIp(value.toString())){                         throw new Exception(description地址格式不正确);                     }                     break;                 case NUMBER:                     if(!RegexUtils.isNumber(value.toString())){                         throw new Exception(description不是数字);                     }                     break;                 case PHONENUMBER:                     if(!RegexUtils.isPhoneNumber(value.toString())){                         throw new Exception(description不是数字);                     }                     break;                 default:                     break;             }         }                   if(!dv.regexExpression().equals()){             if(value.toString().matches(dv.regexExpression())){                 throw new Exception(description格式不正确);             }         }         /*************注解解析工作结束******************/     } } 用到的几个类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package org.xdemo.validation; /**  * 常用的数据类型枚举  * author Goofy  *  */ public enum RegexType {           NONE,     SPECIALCHAR,     CHINESE,     EMAIL,     IP,      NUMBER,     PHONENUMBER;       } 其中正则验证类和字符串工具类请参考以下链接 SuperUtil之RegexUtils SuperUtil之StringUtils 使用方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 package org.xdemo.validation.test; import org.xdemo.validation.RegexType; import org.xdemo.validation.annotation.DV; public class User {           DV(description用户名,minLength6,maxLength32,nullablefalse)     private String userName;           private String password;           DV(description邮件地址,nullablefalse,regexTypeRegexType.EMAIL)     private String email;                 public User(){}           public User(String userName, String password, String email) {         super();         this.userName  userName;         this.password  password;         this.email  email;     }                       public String getUserName() {         return userName;     }     public void setUserName(String userName) {         this.userName  userName;     }     public String getPassword() {         return password;     }     public void setPassword(String password) {         this.password  password;     }     public String getEmail() {         return email;     }     public void setEmail(String email) {         this.email  email;     } } 测试代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package org.xdemo.validation.test; import org.xdemo.validation.annotation.support.ValidateService; /**  * author Goofy  */ public class Test {     public static void main(String[] args){         User usernew User(张三, xdemo.org, 252878950qq.com);         try {             ValidateService.valid(user);         } catch (Exception e) {             e.printStackTrace();         }         usernew User(zhangsan,xdemo.org,xxx);         try {             ValidateService.valid(user);         } catch (Exception e) {             e.printStackTrace();         }         usernew User(zhangsan,xdemo.org,);         try {             ValidateService.valid(user);         } catch (Exception e) {             e.printStackTrace();         }     } } 运行效果
http://wiki.neutronadmin.com/news/129566/

相关文章:

  • 2016网站建设报价表免费网站建设力荐 186一6159一6345绘政正规
  • 软件下载网站搭建邯郸做移动网站费用
  • 网站设计四项原则雄安移动网站建设
  • 个旧市做网站公司wordpress根据字段判断
  • 搜索引擎网站快递wordpress 插件
  • 企业注册平台找人做网站排名优化
  • 哪个网站做音基的题不花钱浙江外发加工网
  • 学校网站的作用和意义邢台制作网站
  • 微商城设计网站建设商业网址
  • 网站安全加固网站建设教程菜鸟教程
  • 易风网站建设品牌羽绒服排名前十
  • 摄影网站公司多语言企业网站源码
  • 云县网站建设网站平台多少钱
  • 定制网站和模板网站及仿站的区别企业网上申报入口
  • 不花钱网站推广网页设计与应用
  • 南宁软件优化网站建设怎样取消2345网址导航
  • 戴南网站建设wap网站seo
  • 网站面包屑导航代码可以免费进入的网站正能量域名
  • 好用的网站模板咨询服务类网站建设
  • 洛阳网站建设哪家好标智客免费logo设计
  • 衡阳网站网站建设与管理做什么
  • 绵阳企业品牌网站建设关闭wordpress评论
  • 安徽法制建设网站自己设计一款新产品
  • 邯郸网站建设有哪些贵阳做网站公司
  • 如何做实体店的网站网络广告策划的流程顺序为
  • 建设网站公司兴田德润官方地址全国十大装修公司
  • 柳江网站开发查看wordpress代码
  • 做网站学哪种代码好网站设计网站开发优化
  • 电影资源网站怎么做的wordpress插件 标签页
  • 个人网站如何制作教程制作网页完整步骤手机版