SSM-CRUD

摘要:
列表size()-1:0;8} 错误原因:除了添加依赖项之外,pagehelper还需要在mybatis config中添加依赖项添加拦截器PageInterceptor 1234˂!

一、项目介绍

前端技术: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 }

三、总结

1566641558267[13]

[RiterWu](https://github.com/RiterWu/ssmcrud)

免责声明:文章转载自《SSM-CRUD》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JavaScript 模块体系一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mybatis plus 联合查询

在xml中只需要需要写如下的代码即可实现分页: <select parameterType="map" resultType="com.test.mybatisplus.pojo.User"> SELECT <include refid="Base_Column_List" />...

利用 Postman 中 Tests 断言校验返回结果

前言 Postman目前是一款很火的接口测试工具,它有着非常强大结果判断能力。为什么说强大呢,因为Postman有自带的校验脚本,根本不需要我们去学习JS脚本语言,对于代码能力为0的各位测试小伙伴来说,特别的友好。 通过Tests的代码校验,可以很快的得到结果判断。如果校验通过,则断言为PASS,如果校验失败,则断言为FAIL Response body...

arcgis中邻接矩阵文件的生成

首先我要说明的是,arcgis 9.2中已经实现基于基本一阶邻接关系的空间自相关计算,也就是说arcgis系统本身已通过一定算法解决了本文以及之前blog中涉及的相关问题。以下内容仅限于算法设计的兴趣及对arcgis相关功能实现的探讨。arcgis 9.2中对于空间关联矩阵文件的构建做了拓展,你可以DBF属性中任意值为Unique的字段来建立矩阵。原先矩阵...

django之表多对多查询

1 class Boy(models.Model): 2 name = models.CharField(max_length=32) 3 4 class Girl(models.Model): 5 nick = models.CharField(max_length=32) 6 7 class Love(...

Jsr303数据校验

空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格. @NotEmpty 检查约束元素是否为NULL或者是EMPTY. Booelan检查 @AssertTrue 验证 Boolean...

树莓派OpenEuler安装

目录 树莓派openEuler安装 安装准备 获取安装源 镜像完整性校验 简介 前提条件 操作指导 安装要求 硬件兼容支持 最小硬件要求 刷写镜像 登录 配置系统 更新系统软件 管理用户 扩展根目录分区 连接 WIFI(可选) 安装桌面(可选) UKUI 桌面环境 XFCE 桌面环境 结语 树莓派openEule...