标签:CRUD list 校验 zA SSM pagehelper Z0 size
一、项目介绍
前端技术:query+Bootstrap+ajax+json
后端技术:SSM(spring、springMVC、mybatis)、JSR303校验
数据库:mysql
服务器:tomcat9.0
项目内容:对员工和部门进行增删改查操作、用pageHelper插件实现分页功能、全选/全不选等。
二、遇到的问题和解决方法
1、用pageHelper插件实现分页,pageSize=集合长度(pagehelper插件失效)
pageInfo源码中:
1 if (list instanceof Collection) { 2 this.pageNum = 1; 3 this.pageSize = list.size(); 4 this.pages = this.pageSize > 0 ? 1 : 0; 5 this.size = list.size(); 6 this.startRow = 0; 7 this.endRow = list.size() > 0 ? list.size() - 1 : 0; 8 }
错误原因:pagehelper除了添加依赖,还需要在mybatis-config.xml中配置中添加拦截器PageInterceptor
1 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> 2 <dependency> 3 <groupId>com.github.pagehelper</groupId> 4 <artifactId>pagehelper</artifactId> 5 <version>5.1.10</version> 6 </dependency>
1 <!-- 配置mybatis分页插件PageHelper --> 2 <plugins> 3 <plugin interceptor="com.github.pagehelper.PageInterceptor"> 4 <!--分页参数合理化--> 5 <property name="reasonable" value="true"/> 6 </plugin> 7 </plugins>
2、校验数据不单单只是前端校验,后端和数据库都需要校验
对于一些重要数据,后端也需要校验,用的是spring支持的JSR303校验
导入Hibernate-Valdator
在pojo对象的字段上添加注解,例如:@Pattern是自定义的约束
1 @Pattern(regexp = "(^[a-zA-Z0-9_-]{6,16}$)|(^[\\u2E80-\\u9FFF]{2,5})", message = "用户名必须是6-16位英文和数字或者2-5位中文的组合") 2 private String empName;private String gender; 3 //@Email 4 @Pattern(regexp = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$", message = "邮箱格式不正确!") 5 private String email;
获取字段和信息
1 @ResponseBodypublic ResultData add(@Valid Employee employee, BindingResult result){ 2 //用map来封装校验信息 3 Map<String,Object> map = new HashMap<>(); 4 List<FieldError> errors = result.getFieldErrors(); 5 for(FieldError e:errors){ 6 System.out.println("错误的字段名:"+e.getField());
System.out.println("错误的信息:"+e.getDefaultMessage()); map.put(e.getField(),e.getDefaultMessage()); 7 } 8 return ResultData.fail().add("errorFields",map); 9 }
三、总结
标签:CRUD,list,校验,zA,SSM,pagehelper,Z0,size 来源: https://www.cnblogs.com/riter-xu/p/11405806.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。