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的配置文件
-
注解扫描路径
-
开启注解驱动
本文详细介绍了SSM框架的整合过程,包括Spring MVC、Spring与MyBatis的整合,以及Spring与JUnit的整合。同时,还探讨了校验框架的使用,如入门案例、高级内容如多规则、嵌套和分组校验的实现方法。
894

被折叠的 条评论
为什么被折叠?



