SSH框架之Struts的数据校验(1)
来源:互联网 发布:淘宝客转链工具app 编辑:程序博客网 时间:2024/05/17 01:36
一、表单数据的验证:
1、前台验证:主要是通过JS验证, 表达数据是否合法!
2、后台验证:通过后台java代码进行验证!
Struts也提供了数据效验的方式!
二、Struts数据效验:
1、通过拦截器完成:
<interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/>
2、ActionSupport源码支持:
三、Struts数据校验的四种形式:
1、代码方式验证Action中所有的方法。
2、代码方式验证Action中指定的方法。
3、XML方式验证Action中所有的方法。
4、XML方式验证Action中指定的方法。
四、代码方式验证Action中所有的方法:
1、Struts数据校验错误信息处理:
1)查看源码:
2)源码分析:
public synchronized void addFieldError(String fieldName, String errorMessage) { // 1. 保存错误信息的map集合 final Map<String, List<String>> errors = internalGetFieldErrors(); // 2. Map的value值 (一个key,对应的多个值用list存储) List<String> thisFieldErrors = errors.get(fieldName); // 3. 如果错误信息的map中没有当前的key,就直接创建集合 if (thisFieldErrors == null) { // 创建 thisFieldErrors = new ArrayList<String>(); errors.put(fieldName, thisFieldErrors); } // 4. 添加错误信息 thisFieldErrors.add(errorMessage);}
2、Action实现:
package sram.validation;import com.opensymphony.xwork2.ActionSupport;/** * 注意:如果要想用struts的数据校验功能,必须继承ActionSupport * 或实现相关接口 * @author mfq */public class UserAction extends ActionSupport{ //封装请求数据 private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } //重写数据验证的方法 public void validate() { //用户名为空 if(user.getUserName() == null || "".equals(user.getUserName())){ //保存错误信息 super.addFieldError("userName", "用户名必须填写"); } //密码 if(user.getPwd() == null || "".equals(user.getPwd())){ super.addFieldError("pwd", "密码必须填写"); } } //业务方法:注册 public String register() { System.out.println(user); return SUCCESS; } //业务方法:列表展示 public String list(){ return SUCCESS; }}
五、代码方式验证Action中指定的方法:
1、引入:上述(第四大点)可以验证所有的方法,但是实际操作中并不是所有的方法都有验证的必要,如列表展示等。所以,为了做到这一点,引入了对指定方法的校验。
2、验证方法命名规则:validate + 要验证的方法名
如:
//只会验证当前action的register方法!public void validateRegister() {}
3、Action实现:
public void validateRegister() { //用户名为空 if(user.getUserName() == null || "".equals(user.getUserName())){ //保存错误信息 super.addFieldError("userName", "用户名必须填写"); } //密码 if(user.getPwd() == null || "".equals(user.getPwd())){ super.addFieldError("pwd", "密码必须填写"); }}
说明:用该方法替代之前(第四大点)的validate方法即可实现对指定方法(register)的校验,而list方法并不会被校验。
1 0
- SSH框架之Struts的数据校验(1)
- SSH框架之Struts的数据校验(2)
- Struts 的数据校验和验证框架
- Struts 的数据校验和验证框架
- Struts框架的数据校验类型
- JAVA SSH ----Struts数据校验
- SSH框架之Struts的请求数据自动封装
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(1)
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(2)
- 自学SSH框架之---struts(一):struts的配置
- SSH框架之Struts(1)——Struts的运行流程
- 【4】SSH整合-加入struts校验框架
- Struts的数据校验
- SSH框架之Struts的数据处理
- SSH框架之Struts的文件上传
- SSH框架之Struts的文件下载
- SSH框架之Struts的拦截器
- SSH框架之Struts的国际化
- POJ 1426 Find The Multiple dfs or 暴力
- 欢迎使用CSDN-markdown编辑器
- 【Unity3D】Socket通讯(1)——连接
- unity 检测物体是否在相机视野范围内
- 练习
- SSH框架之Struts的数据校验(1)
- MVC,MVP 和 MVVM 模式如何选择?
- 1064. 朋友数(20)
- 基于L0范数平滑的图像漫画特效生成算法
- 用Spark和DBSCAN对地理定位数据进行聚类
- C语言中二维数组和指针
- APP数据备份
- storm集成kafka
- 日请求从百万到八亿的技术历程