SSM整合,校验框架

本文详细介绍了SSM框架的整合过程,包括Spring MVC、Spring与MyBatis的整合,以及Spring与JUnit的整合。同时,还探讨了校验框架的使用,如入门案例、高级内容如多规则、嵌套和分组校验的实现方法。

Spring MVC第三天

1 校验框架

1.1 入门案例

使用步骤:

1、导入校验框架的jar包

<!--导入校验的jsr303规范-->
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>
​
<!--导入校验框架实现技术-->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.1.0.Final</version>
</dependency>

hibernate-validator使用的版本是6.1.0.Final这个版本,要求tomcat的版本必须是8.5以上。

2、在controller方法的形式参数上使用@Validated或者@Valid来开启校验。@Validated和@Valid的区别是:@Validated是支持分组校验的,@Valid不支持分组校验

@RequestMapping(value = "/addemployee2")
public String addEmployee2(@Valid Employee employee){
    return "success.jsp";
}

3、在bean的属性上使用指定的注解去设置校验规则

public class Employee{
​
    //设定校验器,设置校验不通过对应的消息,设定所参与的校验组
    @NotBlank(message = "姓名不能为空" )
    private String name;//员工姓名
    
}

4、在controller方法上去定义一个Errors类型的参数,用来接收错误消息

@RequestMapping(value = "/addemployee2")
//使用@Valid开启校验,使用@Validated也可以开启校验
//Errors对象用于封装校验结果,如果不满足校验规则,对应的校验结果封装到该对象中,包含校验的属性名和校验不通过返回的消息
public String addEmployee2(@Valid Employee employee, Errors errors, Model m){
​
    //判定Errors对象中是否存在未通过校验的字段
    if(errors.hasErrors()){
​
        // 获取所有未通过校验规则的信息
        List<FieldError> fieldErrors = errors.getFieldErrors();
​
        System.out.println(fieldErrors.size());
        for(FieldError error : fieldErrors){
​
            System.out.println(error.getField());
            System.out.println(error.getDefaultMessage());
​
            //将校验结果信息添加到Model对象中,用于页面显示,后期实际开发中无需这样设定,返回json数据即可
            m.addAttribute(error.getField(),error.getDefaultMessage());
​
        }
​
        //当出现未通过校验的字段时,跳转页面到原始页面,进行数据回显
        return "addemployee.jsp";
    }
​
    return "success.jsp";
}

 

1.2 高级内容

多规则校验

在实体类的属性上添加多个校验器(校验器指的就是校验规则所对应的注解)。

//一个属性可以添加多个校验器
@NotNull(message = "请输入您的年龄")
@Max(value = 60,message = "年龄最大值不允许超过60岁")
@Min(value = 18,message = "年龄最小值不允许低于18岁")
private Integer age;//员工年龄

 

嵌套校验

什么是嵌套校验?就是对一个实体类中的引用类型的属性进行校验。

使用步骤:

1、在实体类中的引用类型的属性上使用@Valid这个注解去开启校验

//实体类中的引用类型通过标注@Valid注解,设定开启当前引用类型字段中的属性参与校验
@Valid
private Address address;

2、在这个引用类型的实体类的属性上使用校验器指定校验规则

public class Address {
​
    @NotBlank(message = "请输入省份名称")
    private String provinceName;//省份名称
​
    @NotBlank(message = "请输入城市名称")
    private String cityName;//城市名称
​
    @NotBlank(message = "请输入详细地址")
    private String detail;//详细住址
​
    @NotBlank(message = "请输入邮政编码")
    @Size(max = 6,min = 6,message = "邮政编码由6位组成")
    private String zipCode;//邮政编码
​
}

 

分组校验

使用步骤:

1、定义分组(就是去定义一个接口)

public interface GroupA {}

2、给我们的校验器去指定的分组

//设定校验器,设置校验不通过对应的消息,设定所参与的校验组
@NotBlank(message = "姓名不能为空" , groups = {GroupA.class})
private String name;//员工姓名

3、在controller方法的@Validated中设定分组

@RequestMapping(value = "/addemployee")
public String addEmployee(@Validated({GroupA.class}) Employee employee, Errors errors, Model m )

 

2 SSM框架整合

2.1 整合思想

思想:把service和dao交由spring进行管理,controller交由spring mvc

因此在进行整合的时候,首先需要完成spring和mybatis的整合,然后在完成spring和spring mvc的整合。

2.2 spring和mybatis的整合

步骤:创建一个spring所需要的配置文件(applicationContext.xml),然后就是在这个配置文件中去配置spring和mybatis在进行整合的时候所需要的两个核心的bean。

再次在service层配置事务管理,并且把service层中的bean交由spring进行管理。

配置思想:

1、配置spring和mybatis在进行整合的时候所需要的两个核心的bean

  • SqlSessionFactoryBean

  • MapperScannerConfigurer

2、在配置SqlSessionFactoryBean的时候需要一个DataSource,因此就需要配置一个DataSource

  • DruidDataSource

3、配置注解扫描路径

4、配置事务管理

  • DataSourceTransactionManager

  • <tx:annotation-driven transaction-manager="txManager"/>

2.3 spring和junit的整合

在测试类上使用两个注解:

1、@RunWith(SpringJUnit4ClassRunner.class)

2、@ContextConfiguration(locations = "classpath:applicationContext.xml")

 

2.4 整合spring mvc

整合步骤:

1、在web.xml文件中去配置spring mvc的前端控制器DispatcherServlet。通过这个前端控制器需要去加载spring mvc的配置文件。

2、创建一个spring mvc的配置文件,配置文件中的内容

  • 注解扫描路径

  • 开启注解驱动

 

2.5 整合spring和spring mvc

思路:就是在web.xml文件中去配置一个监听器(ContextLoaderListener),通过这个监听器去加载spring的配置文件

 

3 整合思路

思路:入口是在web.xml中 , 在web.xml文件中去配置加载spring的配置文件所需要的监听器(ContextLoaderListener),以及spring mvc配置文件所需要的前端控制器

(DispatcherServlet)。

步骤:

1、在web.xml文件中去配置ContextLoaderListener

2、创建spring所需要的配置文件

  • 注解扫描路径

  • 加载外部属性文件

  • 配置SqlSessionFactory

  • 配置MapperScannerConfigure

  • 配置DataSourceTransactionManager

  • 配置开启事务注解驱动

3、在web.xml文件中去配置DispatcherServlet

4、创建一个spring mvc的配置文件

  • 注解扫描路径

  • 开启注解驱动

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值