参数绑定:
1、简单参数绑定,数值型,字符串型,布尔型等
需求,在原来编辑的基础上修改采用获取参数的方式


2、实体类绑定,只要传递的参数在某个实体类中有就可以,但是如果传递的参数在实体类中没有全部包含,则不可以。
需求:拿注册registUser.jsp举例

如果我们注册时添加一个中文,输出的则是乱码,怎么办?servelt手动配置一个过滤器实现过滤
springmvc同样也需要过滤器,不用手动写类了,底层jar包已经提供,我们需要web.xml配置即可
由于默认配置并没有指定具体以什么格式解析,所以我们需要手动告诉编译器用什么格式解析

3、同样是实体类传参,但是多表有关联
registeUser.jsp添加下拉列表

后台直接用实体类点出来就可以
4、传递数组,举例删除
在selectUser.jsp添加删除按钮,采用手动提交form表单的方式



5、数据校验
数据校验使用hibernate框架提供的工具validate
使用方式:
1、在springmvc核心配置文件中配置一下validate数据校验框架

2、在类路径下创建出一个存放错误消息的资源文件(暂时什么都不需要写)

3、分析:我需要在请求发送过程中就要进行数据校验,什么组件能分发请求?映射器,适配器
所以需要在mvc:annotation-driven元素中加一个属性:

4、都准备完成后,如何检验?采用实体类传参,那么在实体类中属性上加对应注解和注解用到的属性配置一下,每个属性都有对应的参数,message:错误消息是什么,值从消息资源文件中来,花括号中的值就是消息资源文件中的key


5、一切准备完成后,回到Controller层,在参数实体类前需要加上@Validated注解,表示验证,同时,校验返回的结果放在BindingResult对象中,所以需要再加上一个参数BindingResult,校验时,首先通过BindingResult对象获取所有的错误信息,再判断获取的信息是否为空并且长度是否大于0,如果不为空且长度大于0,校验不通过,否则校验通过,,不通过时,需要把错误信息带回到页面,放入存储域中

返回页面,采用循环打印相关错误信息

网友评论