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

肇庆市有限公司网站建设营销模式有几种

肇庆市有限公司网站建设,营销模式有几种,自助外贸网站制作,微信商家联盟平台目录 自定义注解的定义和作用范围如何创建自定义注解创建注解接口 如何使用自定义注解进行数据验证创建注解处理器控制器中使用注解 如何为字段添加注解 自定义注解的定义和作用范围 自定义注解可以作用在类、方法、属性、参数、异常、字段或其他注解上。 如何创建自定义注解…

目录

  • 自定义注解的定义和作用范围
  • 如何创建自定义注解
    • 创建注解接口
  • 如何使用自定义注解进行数据验证
    • 创建注解处理器
    • 控制器中使用注解
  • 如何为字段添加注解

自定义注解的定义和作用范围

  • 自定义注解可以作用在类、方法、属性、参数、异常、字段或其他注解上。

如何创建自定义注解

创建注解接口

在这里插入图片描述

package hanshuhuan.test.anonotion;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;/*** 实体检验自定义注解类,根据我们自定义的注解去检查实体各个字段是否在规定的值内* @author shuhu**/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidateEntity {public boolean required() default false;//是否检验nullpublic boolean requiredLeng() default false;//是否检验长度public boolean requiredMaxValue() default false;//是否检验最大值public boolean requiredMinValue() default false;//是否检验最小值public int maxLength() default -1;//最大长度public int minLength() default -1;//最小长度public long maxValue() default -1;//最大值public long minValue() default -1;//最小值public String errorRequiredMsg() default "";//值为null时的错误提示信息public String errorMinLengthMsg() default "";//最小长度不满足时的提示信息public String errorMaxLengthMsg() default "";//最大长度不满足时的提示信息public String errorMinValueMsg() default "";//最小值不满足时的提示信息public String errorMaxValueMsg() default "";//最大值不满足时的提示信息
}

如何使用自定义注解进行数据验证

创建注解处理器

package hanshuhuan.test.util;import java.lang.reflect.Field;import hanshuhuan.test.anonotion.ValidateEntity;
import hanshuhuan.test.bean.CodeMsg;/*** 验证实体工具类* @author shuhu**/
public class ValidateEntityUtil {public static CodeMsg validate(Object object){Field[] declaredFields = object.getClass().getDeclaredFields();for(Field field : declaredFields){ValidateEntity annotation = field.getAnnotation(ValidateEntity.class);if(annotation != null){if(annotation.required()){//表示该字段是必填字段field.setAccessible(true);try {Object o = field.get(object);//首先判断是否为空if(o == null){CodeMsg codeMsg = CodeMsg.VALIDATE_ENTITY_ERROR;codeMsg.setMsg(annotation.errorRequiredMsg());return codeMsg;}//到这,说明该变量的值不是null//首先判断是不是String类型if(o instanceof String){//若是字符串类型,则检查其长度if(annotation.requiredLeng()){if(o.toString().length() < annotation.minLength()){CodeMsg codeMsg = CodeMsg.VALIDATE_ENTITY_ERROR;codeMsg.setMsg(annotation.errorMinLengthMsg());return codeMsg;}if(o.toString().length() > annotation.maxLength()){CodeMsg codeMsg = CodeMsg.VALIDATE_ENTITY_ERROR;codeMsg.setMsg(annotation.errorMaxLengthMsg());return codeMsg;}}}//其次来判断是否为数字if(isNumberObject(o)){//判断是否规定检查最小值if(annotation.requiredMinValue()){if(Double.valueOf(o.toString()) < annotation.minValue()){CodeMsg codeMsg = CodeMsg.VALIDATE_ENTITY_ERROR;codeMsg.setMsg(annotation.errorMinValueMsg());return codeMsg;}}//判断是否规定检查最大值if(annotation.requiredMaxValue()){if(Double.valueOf(o.toString()) > annotation.maxValue()){CodeMsg codeMsg = CodeMsg.VALIDATE_ENTITY_ERROR;codeMsg.setMsg(annotation.errorMaxValueMsg());return codeMsg;}}}} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}return CodeMsg.SUCCESS;}/*** 检查对象是否是数字类型* @param object* @return*/public static boolean isNumberObject(Object object){if(object instanceof Integer)return true;if(object instanceof Long)return true;if(object instanceof Float)return true;if(object instanceof Double)return true;return false;}
}

控制器中使用注解

@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> login(User user,String cpacha){if(user == null){return Result.error(CodeMsg.DATA_ERROR);}//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(user);if(validate.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(validate);}//表示实体信息合法,开始验证验证码是否为空if(StringUtils.isEmpty(cpacha)){return Result.error(CodeMsg.CPACHA_EMPTY);}log.info("ok"+user);return Result.success(true);
}

如何为字段添加注解

  • 自定义注解的定义是通过@注解名的方式实现的。
@ValidateEntity(required=true,requiredLeng=true,minLength=4,maxLength=18,errorRequiredMsg="用户名不能为空!",errorMinLengthMsg="用户名长度需大于4!",errorMaxLengthMsg="用户名长度不能大于18!")
@Column(name="username",nullable=false,length=18)
private String username;//用户名@ValidateEntity(required=true,requiredLeng=true,minLength=4,maxLength=32,errorRequiredMsg="密码不能为空!",errorMinLengthMsg="密码长度需大于4!",errorMaxLengthMsg="密码长度不能大于32!")
@Column(name="password",nullable=false,length=32)
private String password;//密码
http://www.yidumall.com/news/30673.html

相关文章:

  • dede小说网站模板微信营销工具
  • 门户网站开发框架如何进行网站的推广
  • 织梦网站如何做地区分站网络营销策划包括哪些内容
  • 网站空间要多少钱临沧seo
  • 哪些大网站是java做的自媒体135网站免费下载安装
  • 学计算机网站开发好吗郑州网站seo优化
  • 实惠高端网站设计品牌办公软件速成培训班
  • 家政网站设计南宁seo优化
  • dede更新网站全网推广成功再收费
  • 网站宣传页面每日关键词搜索排行
  • 做钢管用哪个门户网站网推广公司
  • 商务网站制作公司舆情信息网
  • 贵阳营销型_网站建设凡科建站的优势
  • 如何用网站做淘客seo搜索引擎优化关键词
  • 信阳做网站汉狮网络地推项目平台
  • 佛山网站建设哪里有搜索引擎seo关键词优化方法
  • 浙江建设职业技术学院塘栖校区网站聚名网
  • 做网站 属于电子商务今日头条极速版官网
  • 深圳哪个做网站好优化百度运营平台
  • 重庆做网站推广公司google推广平台怎么做
  • 江西城乡建设厅网站佛山seo技术
  • 网站建设标题怎么写优化营商环境发言材料
  • 深圳有做网站最近价格苏州疫情最新消息
  • 网站做多久永久免费建站系统
  • 公司网站建设优点优秀软文范例
  • 广州品牌网站制作公司seo的主要工作内容
  • 互联网网站项目方案书百度营销客户端
  • 免费领取永久云服务器新手seo入门教程
  • 做网站建设需要电脑优化大师官方免费下载
  • 军事最新军事新闻视频seo诊断书案例