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

专业提供网站建设服务包括哪些网上怎么推广公司产品

专业提供网站建设服务包括哪些,网上怎么推广公司产品,网站制作比较好的公司,公司建推广网站多少钱5. 前端校验 我们在前端提交的表单数据#xff0c;我们也是需要对提交的数据做相关的校验的 Form 组件提供了表单验证的功能#xff0c;只需要通过 rules 属性传入约定的验证规则#xff0c;并将 Form-Item 的 prop 属性设置为需校验的字段名即可 校验的页面效果 前端数据…5. 前端校验 我们在前端提交的表单数据我们也是需要对提交的数据做相关的校验的 Form 组件提供了表单验证的功能只需要通过 rules 属性传入约定的验证规则并将 Form-Item 的 prop 属性设置为需校验的字段名即可 校验的页面效果 前端数据校验就搞定了。后端校验也是不可避免的 6. 后端服务校验 6.1 JSR-303介绍 JSR是Java Specification Requests的缩写意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。 JSR-303 是JAVA EE 6 中的一项子规范叫做Bean ValidationHibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现除此之外还有一些附加的 constraint。   Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现除此之外还有一些附加的 constraint。 Hibernate 中填充一部分 6.2 后端校验实现 1.需要在commons服务中添加对应的依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactIdversion2.4.12/version/dependency2.在需要校验的Bean的字段头部添加对应的注解 3.通过Valid注解来开启JSR303的校验 4.测试通过postman提交空的数据 当我们提交一个非空的数据是可以通过的 5.校验不合法的提示信息在Controller中通过 BindingResult对象来获取校验的结果信息然后解析出来后封装为R对象响应 RequestMapping(/save)//RequiresPermissions(product:brand:save)public R save(Valid RequestBody BrandEntity brand, BindingResult result){if(result.hasErrors()){// 提交的数据经过JSR303校验后有非法的字段MapString,String map new HashMap();ListFieldError fieldErrors result.getFieldErrors();for (FieldError fieldError : fieldErrors) {// 获取非法数据的 fieldString field fieldError.getField();// 获取非法的field的提示信息String defaultMessage fieldError.getDefaultMessage();map.put(field,defaultMessage);}return R.error(400,提交的品牌表单数据不合法).put(data,map);}brandService.save(brand);return R.ok();}然后完善其他字段你的校验规则 Data TableName(pms_brand) public class BrandEntity implements Serializable {private static final long serialVersionUID 1L;/*** 品牌id*/TableIdprivate Long brandId;/*** 品牌名*///NotEmpty//NotNullNotBlank(message 品牌的名称不能为空)private String name;/*** 品牌logo地址*/NotBlank(message logo不能为空)URL(message logo必须是一个合法URL地址)private String logo;/*** 介绍*/private String descript;/*** 显示状态[0-不显示1-显示]*/private Integer showStatus;/*** 检索首字母*/NotBlank(message 检索首字母不能为空)Pattern(regexp /^[a-zA-Z]$/,message 检索首字母必须是单个的字母)private String firstLetter;/*** 排序*/NotNull(message 排序不能为null)Min(value 0,message 排序不能小于0)private Integer sort;}6.3 统一的异常处理 在SpringMVC中的统一异常处理我们通过ControllerAdvice来处理 /*** 统一的异常处理类*/ /*ResponseBody ControllerAdvice*/ Slf4j RestControllerAdvice(basePackages com.msb.mall.product.controller) public class ExceptionControllerAdvice {/*** 处理验证异常的方法* param e*/ExceptionHandler(value MethodArgumentNotValidException.class)public R handlerValidExecption(MethodArgumentNotValidException e){MapString,String map new HashMap();e.getFieldErrors().forEach((fieldError)-{map.put(fieldError.getField(),fieldError.getDefaultMessage());});return R.error(400,提交的数据不合法).put(data,map);}/*** 系统其他的异常处理* param throwable* return*/ExceptionHandler(Throwable.class)public R handlerExecption(Throwable throwable){log.error(错误信息,throwable);return R.error(400,未知异常信息).put(data,throwable.getMessage());} } 响应编码的规制制订因为随着后面的业务越来越复杂我们在响应异常信息的时候尽量准确的给客户端有用的提示信息。 通用的错误列表响应的编码统一为5位数字前面两位约定为业务场景最后三位约定为错误码 10表示通用 /001:参数格式错误 10001 /002:未知异常 10002 11商品 12订单 13物流 14会员 … 定义对应的枚举类 package com.msb.common.exception;/*** 错误编码和错误信息的枚举类*/ public enum BizCodeEnume {UNKNOW_EXCEPTION(10000,系统未知异常),VALID_EXCEPTION(10001,参数格式异常);private int code;private String msg;BizCodeEnume(int code,String msg){this.code code;this.msg msg;}public int getCode(){return code;}public String getMsg(){return msg;} } 在统一异常处理中我们就可以使用通用的编码 package com.msb.mall.product.exception;import com.msb.common.exception.BizCodeEnume; import com.msb.common.utils.R; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice;import java.util.HashMap; import java.util.Map;/*** 统一的异常处理类*/ /*ResponseBody ControllerAdvice*/ Slf4j RestControllerAdvice(basePackages com.msb.mall.product.controller) public class ExceptionControllerAdvice {/*** 处理验证异常的方法* param e*/ExceptionHandler(value MethodArgumentNotValidException.class)public R handlerValidExecption(MethodArgumentNotValidException e){MapString,String map new HashMap();e.getFieldErrors().forEach((fieldError)-{map.put(fieldError.getField(),fieldError.getDefaultMessage());});//return R.error(400,提交的数据不合法).put(data,map);return R.error(BizCodeEnume.VALID_EXCEPTION.getCode(), BizCodeEnume.VALID_EXCEPTION.getMsg()).put(data,map);}/*** 系统其他的异常处理* param throwable* return*/ExceptionHandler(Throwable.class)public R handlerExecption(Throwable throwable){log.error(错误信息,throwable);//return R.error(400,未知异常信息).put(data,throwable.getMessage());return R.error(BizCodeEnume.UNKNOW_EXCEPTION.getCode(), BizCodeEnume.UNKNOW_EXCEPTION.getMsg()).put(data,throwable.getMessage());} } 6.4 分组校验 在实际的业务场景中同一个Entity的校验可能会有不同的规则比如添加数据品牌id必须为空而更新数据品牌Id必须不为空针对这种情况我们需要使用分组校验来实现 1定义标志类 2在Entity中指定分组规则 3通过Validated注解来实现分组校验 6.5 自定义校验注解 面临特殊的校验需要我们可以通过正则表达式来处理当然我们也可以通过自定义校验注解的方式来实现。 1 创建自定义的校验注解 /*** 自定义的校验注解*/ Documented Constraint(validatedBy { }) Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE }) Retention(RUNTIME) public interface ListValue {String message() default {com.msb.common.valid.ListValue.message};Class?[] groups() default { };Class? extends Payload[] payload() default { };int[] val() default {}; }对应需要创建提示信息的属性文件 2创建一个自定义的校验器 package com.msb.common.valid;import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; import java.lang.annotation.Annotation; import java.sql.ClientInfoStatus; import java.util.HashSet;/*** 对应的校验注解的校验器*/ public class ListValueConstraintValidator implements ConstraintValidatorListValue,Integer {private HashSetInteger set new HashSet();/*** 初始化的方法* 举例ListValue(val{1,0})* 获取到 1 0* param constraintAnnotation*/Overridepublic void initialize(ListValue constraintAnnotation) {int[] val constraintAnnotation.val();// 0 1for (int i : val) {set.add(i);}}/*** 判断校验是否成功的方法* param value 客户端传递的对应的属性的值 判断value是否在0 1 中* param context* return*/Overridepublic boolean isValid(Integer value, ConstraintValidatorContext context) {return set.contains(value);} } 3关联自定义的校验注解和校验器
http://www.tj-hxxt.cn/news/230922.html

相关文章:

  • 邯山区建设局网站合肥网站建设开发
  • 湖北省随州市建设厅网站公司的官方网站的作用
  • 德成建设集团有限公司网站孝感市网站建设公司
  • 北京网站建设推广服微信网站程序
  • 国内红酒网站建设长春网络公司营销模式
  • 南京建网站公司wordpress 公司内网
  • 新余网站建设找谁做自己在线制作logo免费广告招牌
  • 外贸邮箱用哪个比较好外链seo推广
  • 无锡自适应网站开发电子商务的就业方向
  • 网站建设实验步骤上海建筑设计院
  • wordpress网站加密wordpress 编辑 所见即所得插件
  • 做投票链接网站西安企业网站怎么建立
  • 百度云服务器挂网站北京网站设计公司有哪些
  • 新的网络推广方式147seo工具
  • 个人网站更换域名代做网站关键词
  • wordpress 影视主题WordPress优化速度插件
  • 网站建站哪家公司好一点wordpress局域网
  • 邯郸哪里有做网站的李桂阳城乡建设局网站
  • 企业建网站好接做网站单子的网站
  • 微网站网站模板建站做网站属于程序员吗
  • 济宁建设局网站招聘会商丘市住房和城乡建设局网站
  • 贵阳网站建设的公司百度用户服务中心入口
  • 网站推广淘宝联盟怎么做茂名企业做网站
  • 网站建设和推广的话术杭州义牛网络技术有限公司
  • 信云科技的vps怎么做网站西安自助建站做网站
  • 筑巢网站做鲜花配送网站需要准备什么
  • 南宁东凯做网站的公司wordpress 企业 下载
  • node 做的大型网站做网站一单能挣多少
  • 做设计哪个网站可以接单免费可以看污app秋葵
  • 河北建设厅注册中心网站首页制作一个介绍洛阳网站