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

深圳营销型网站建设公司选择哪家好新产品上市推广策划方案

深圳营销型网站建设公司选择哪家好,新产品上市推广策划方案,南通网站建设推广优化,全国十大计算机培训机构1、什么是JSR303校验 JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。…

1、什么是JSR303校验

JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

JSR303是提案中的一个,用来做JavaBean校验的。

JSR是一个组织,用来收集整理java规范提案。任何人都可以提交提案,组织觉得有必要就会添加到新版本的jdk里。

2、小试牛刀

【2.1】添加依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version><spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version><spring-cloud.version>Finchley.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--json--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version><scope>compile</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>

【2.2】添加配置文件修改端口

server:port: 100

【2.3】创建实体类User

package com.jr.entry;import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotNull;@Component
@Data
public class User {private String id;// @NotNull   name为空地址@NotEmpty  //name为空值,空双引private String name;@Length(min = 6,max = 10)   //@Length注解不能作用在Integer属性上。private String password;}

【2.4】创建控制器

package com.jr.controller;import com.jr.entry.User;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/demo")
public class DemoController {@PostMapping            Validated开启JSR303校验;RequestBody 请求主体存储参数public String testJsr303(@Validated @RequestBody User user){return "ok";}
}

【2.5】创建启动类

@SpringBootApplication
public class SpringBootMain {public static void main(String[] args) {SpringApplication.run(SpringBootMain.class,args);}
}

【注意】不必创建前端页面

1.使用@PostMapping注解时,接口要想成功接受到数据,需要使用x-www-form-urlencoded数据的格式发送数据。
2.使用@PostMapping+@RequestBody注解时,接口要想成功接受到数据需要使用raw数据的格式发送数据。  
3.但是使用html静态页面发送post请求时,数据是按照application/x-www-form-urlencoded;charset=UTF-8格式发送的,格式不符合,数据接收不到。

在这里插入图片描述

使用Postman 软件解决上述问题!

在这里插入图片描述

【密码没有符合规则】

在这里插入图片描述

【用户名没有符合规则】

在这里插入图片描述

但是发现响应的值,虽然是json格式的。但是这个格式并不是咱们想要的,前台后台都是约定好的数据格式,如果你的数据格式发生了变化,那么就需要特殊处理了,很麻烦。所以我们要对响应的结果做一个处理。

3、规范返回值格式:

3.1添加ResultCode工具类

public enum ResultCode {   ///针对状态码是200的情况下,编写的工具类SUCCESS(0, "请求成功"),ERROR(1, "请求失败"),;private int code;private String message;ResultCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public String getMessage() {return message;}
}

3.2添加Result类

创建工具类 util/Result

package com.jr.util;import lombok.Data;
import java.util.HashMap;
import java.util.Map;@Data
public class Result {     //汇总所有响应情况,状态码为200,和 非200的情况。private Integer code;  private String message;private Map<String, Object> map = new HashMap<>();  private Result() {}public static Result ok() {Result r = new Result();r.setCode(ResultCode.SUCCESS.getCode());r.setMessage(ResultCode.SUCCESS.getMessage());return r;}public static Result error() {Result r = new Result();r.setCode(ResultCode.ERROR.getCode());r.setMessage(ResultCode.ERROR.getMessage());return r;}public Result put(String key, Object value) {map.put(key, value);return this;}public Object get(String key) {return map.get(key);}}

3.3添加ValidationExceptionAdvice工具类

import org.jsoft.demo.utils.Result;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;import java.util.HashMap;
import java.util.List;
import java.util.Map;@RestControllerAdvice("com.jr.controller")
public class ValidationExceptionAdvice {@ExceptionHandler(MethodArgumentNotValidException.class)public Result handlerMethodArgumentNotValidException(MethodArgumentNotValidException e) {BindingResult bindingResult = e.getBindingResult();List<FieldError> fieldErrors = bindingResult.getFieldErrors();Map<String, Object> map = new HashMap<>();for (FieldError fieldError : fieldErrors) {map.put(fieldError.getField(), fieldError.getDefaultMessage());}return Result.error().put("data", map);}
}

【返回值格式修改后】

在这里插入图片描述

4、ctrl中需要校验的参数类中添加注解

空检查
@Null验证对象是否为null
@NotNull验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank检查约束字符串是不是Null还有被Trim的长度是否大于0
@NotEmpty检查约束元素是否为NULL或者是EMPTY.
Booelan检查
@AssertTrue验证 Boolean 对象是否为 true
@AssertFalse验证 Boolean 对象是否为 false
长度检查
@Size(min=, max=)验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=)验证字符串长度
日期检查
@Past验证 Date 和 Calendar 对象是否在当前时间之前
@Future验证 Date 和 Calendar 对象是否在当前时间之后
数值检查建议使用在Stirng,Integer类型,不建议使用在int类型上,因为表单值为“”时无法转换为int,但可以转换为Stirng为"",Integer为null
@Min验证 Number 和 String 对象是否大等于指定的值
@Max验证 Number 和 String 对象是否小等于指定的值
@Digits(Integer=,fraction=,message=“”)浮点型校验,Integer代表整数位数,fraction代表小数位数
格式检查
@Pattern验证 String 对象是否符合正则表达式的规则

【应用@Pattern注解】

import lombok.Data;
import org.hibernate.validator.constraints.Length;import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;/*** @author szsw* @date 2024/4/9 11:03:02*/
@Data
public class User {private String id;@NotEmptyprivate String name;@Length(min = 6, max = 10)private String password;@Pattern(regexp = "^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$", message = "请输入正确的邮箱!")private String email;}

说明:数据校验一定要前后台都校验,前台校验 可以拦截部分请求,后台检验可以 保证数据的安全性。

lic class User {

private String id;
@NotEmpty
private String name;
@Length(min = 6, max = 10)
private String password;
@Pattern(regexp = "^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$", message = "请输入正确的邮箱!")
private String email;

}


说明:数据校验一定要前后台都校验,前台校验 可以拦截部分请求,后台检验可以 保证数据的安全性。
http://www.hkea.cn/news/614713/

相关文章:

  • 永川做网站的武汉百度快速排名提升
  • 做网站的故意给中病毒网络营销广告
  • 关于阅读类网站的建设规划书友情链接系统
  • 专业做幼儿园设计的网站百度小程序关键词优化
  • 腾龙时时彩做号网站整站优化关键词排名
  • 正规的网站制作与推广百度广告运营
  • 网站建设估价引擎搜索有哪些
  • 东莞网站建设选菲凡网络如何制作网站
  • 网站收录系统备案查询官网
  • 临朐县网站建设利用搜索引擎营销成功的案例
  • 利用网盘做视频网站镇江优化推广
  • 视频微网站开发哪个公司网站设计好
  • 品网站建设智能搜索引擎
  • 怎样在百度建网站seo建设者
  • 四海网络网站建设咨询什么叫做网络营销
  • 安徽建设网官方网站优化分析
  • 网站根目录文件名游戏推广员是做什么的
  • 个体工商户怎么做网站西安网站seo技术
  • 报名网站制作2345网址导航官网下载安装
  • 图书购物网站开发总结百度发广告需要多少钱
  • 做网站 业务流程图站长统计性宝app
  • 长沙做网站大概多少钱万网域名注册教程
  • 成都网站建设网站产品推广计划书怎么写
  • 深圳个人网站建设大连网络推广公司哪家好
  • 建设工程教育appseo技术培训中心
  • 家教中介怎么利用网站来做的免费广告推广
  • wordpress仿制建设seo是什么平台
  • 商城网站建设分为几块seo臻系统
  • 网络营销对于个人而言有什么作用seo文章
  • 做书籍封皮的网站今日中国新闻