1.我们正常开发一般会在前端页面进行参数的非空,以及合法性校验
2.同样正常情况下,后台也同样需要对参数进行判断
①:因为防止其他访问跳过页面直接访问后台,如果没有判断和合法性校验,会对后台造成一些不可预知的后果
②:这样的做法对后台系统数据有保护安全的意义
3.我自己总结的有俩中方法(其中一种借用同事彭于晏的方法,哈哈)
①:第一种:
用比较原始的方法(非空判断)
例子:1.获取参数
2.if(regNo == null || "".equals(regNo)){
resultMap.put("dealResult","0");
resultMap.put("failCause","个人受理号不能为空");
}
用比较原始的方法(是否存在判断)
封装的工具类方法DBUtil.querySingle()--查询系统是否存在,并返回一个map形式
数据,然后根据SQL(count(1))函数,判断与0的结果作为返回的结果(是否存在)
例子:Map map = DBUtil.querySingle("select count(1) cnt from gp_clm_reg r where r.reg_no=?", regNo);
int cnt = Tools.toInteger(Tools.toString(map.get("cnt")));
if(cnt==0){
resultMap.put("regNo",regNo);
resultMap.put("dealResult","0");
resultMap.put("failCause","在系统中不存在");
}
②:第二种:通过注解的方式(非空判断)
1.将传来的Json参数转换为bean的形式,分别使用注解@NotNull(“具体参数不为空,返回的信息”)
例子:2.具体的写法
public class A{
@NotNull("个人受理号不能为空")
private String regNo;
}
3.根据参数校验的工具类
ValidateUtil.validateEntity(param,paramList); param为传进来的参数对象,paramList为为空的错误信息
将错误的信息返回为一个集合,然后通过join方法将错误list用","拼接起来,返回展示
(这个工具类是将bean里面所有嵌套的参数都校验过了,一起返会错误信息)
4.将错误的信息封装到自己定义的bean里面,最后将bean转换为Json字符串返回
用union all的方式一次全都查出来(是否存在判断)
例子:SQL就不写了,太长了,查出来之后,放进bean中,然后转换成Json字符串返回
总结:第一种方法将参数直接取出来,使用
第二种方法将参数都在bean里面封装(有可能嵌套参数)–(有入参的bean,返回参数的bean)
bean里面可以封装简单成员变量,也可以封装list(对于传进的参数和返回的参数同样适用)
1.对于简单的成员变量直接在bean里面写
2.对于list,list这样的方式写(嵌套的方式)
3.第二种方式是参考我同事代码,我自己又总结了一下(虽然之前也用过,但早不记得这么清楚了。。嘻嘻)。