表单校验

来源:互联网 发布:ubuntu qq2016 编辑:程序博客网 时间:2024/06/05 10:03

编程式校验

Struts: 表单校验

2017-11-30 15:32:31

1.首先Action继承ActionSupport

2.重写validate()  对Action所有方法进行校验     加上  SkipValidation 跳过 

validateXxx()    Xxx=Struts.xml中的action name

列如: action name=regist     validateRegist

3.在页面显示错误信息

注意:如果不通过  struts默认会跳转 到  result name="input"的视图,否则会抛出

配置文件校验

1.在src根目录编写Action 类名 -validation.xml :对所有方法进行校验 

UserAction'-login-validation

新概念 正则

//用户名必须是英文字符,而且6--8位  (这是自己定义的,哈哈哈)
//[正则]{n,m}:匹配前面的规则至少n次, 最多m次

Struts 拦截器

struts的核心功能全部靠拦截器实现

一个功能对应一个拦截器

拦截器:拦截请求 ,在进入Action之前拦截,return之后再拦截一次

列如 params拦截器 :在表单提交Q请求后,被拦截器拦截 ,拦截器获取到表单数据,在进入action后,把表单数据封装到对应的实体.

自定义拦截器:

在进入某个action之前或action之后需要添加功能

扩展Struts的功能 

性能监控拦截器:

1.继承一个AbstractIntercepter类  默认全拦截 

重写 interceptor 方法

1.2在struts.xml中配置拦截器:

一旦陪了自定义拦截器 ,默认拦截器失效


2.继承MethodFilterIntercepter  

MethodFilterIntercepter  是 AbstractIntercepter 的子类

2017-12-1 09:29:39

它可以指定拦截哪些方法, includeMethod

还可以指定不拦截哪些方法mexcludeethods

多个方法中间用,隔开


复制web工程需要修改其


同步:线程顺序执行,线程执行有序  你干完,我再干

异步: 你干你的,我干我的      同时进行,互不干涉  同时

ajax:异步的页面局部刷新技术  

ajax异步:一个页面可以进行多个操作   ajax主流 必须掌握 

局部刷新:页面不跳转(不刷新),只是对局部数据进行修改


1.js是一种在浏览器运行的脚步语言  2.,js是事件驱动语言 

JQUERY  ajax 步骤:

1.导包   加载jquery文件   

2.ajax写在事件驱动方法中:onlick事件   onblur 失去焦点事件    onfockus  得到焦点事件 

onload 页面加载事件    onmouseover :鼠标悬浮事件  omouseout 鼠标离开事件


3.$.ajax()常见的属性:

$.ajax({

$.ajax({type:请求类型,url:请求地址,data:请求参数{"请求参数:请求参数值"},contentType:发送给后台的数据类型(请求头),dataType:预期后台返回的数据类型,success:ajax请求成功后的回调函数fuction(data){//data:后台返回的数据},error:请求失败后的回调函数fuction(){}
});
struts和 ajax结合:

1.导jar包  jackson (解析JSON工具包)

 struts-json-plugin:struts JSON结合包 

2.在Action添加ajax请求后台返回的数据

优先选择Map(简单数据结构)
3.在Struts.xml文件中添加ajax请求映射

3.-1 package继承json-default 

3.-2 result type="json"

3.-3    ajax请求后不要加页面
加parm 声明ajax返回的数据   2017年12月1日15:12:57

4.Action中编写对应的处理方法


多态: 父类的应用可以指向子类的对象,指向不同的子类有不同的操作

能.出什么看父类,具体调谁看子类


ajax校验不通过阻止表单提交?

<form onsubmit="return check submit();"></form>



编写 fuction checkSubmit(){},根据该方法的返回值 决定表单是否可以提交 

true 可以  false  不可以

})

栈:存储所有的局部变量(方法声明的变量,包括方法参数的引用变量)

引用变量:类名 对象名就是引用变量

MyUser user=new MyUser();

user.username="abc";

user.setUsername("abc");

引用变量存的是该对象在堆里的屋里地址,相当于狗链子

堆:存储对象的属性

struts 文件上传

1 页面中添加<input file name="xxoo"/>

2.设置 <form enctype ="multipart/form-data"method="post">

3.struts 文件上传依赖commons.io包和commons-fileupload包

4.在Action中添加和file name 名字一样 的File 引用 File xxoo  File xxooFileName;