1 / 21
文档名称:

第4章 struts 2输入校验.ppt

格式:ppt   大小:1,006KB   页数:21页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第4章 struts 2输入校验.ppt

上传人:350678539 2022/7/3 文件大小:1006 KB

下载得到文件列表

第4章 struts 2输入校验.ppt

相关文档

文档介绍

文档介绍:第4章__Struts_2输入校验
第一页,共21页。
输入校验的意义
什么是输入校验
为什么要进行输入校验
第二页,共21页。
什么是输入校验
输入校验,从字,暂时不使用客户端的校验代码。这里只是暂时地去掉客户端校验代码,这样才能更好地查看服务端校验的效果。步骤如下所示。
首先新建一个用户注册页。在输入页中除了输入表单外,添加一个<s:actionerror>标签用来输出actionerror中的错误信息。
第十一页,共21页。
测试服务器端输入校验
现在打开用户注册页,不输入任何数据,单击“提交”按钮,页面将提示按要求进行输入的错误信息,如图4-10所示。
因为程序要求输入用户名、密码、确认密码必须输入,所以会提示要求用户进行输入。同样假如输入错误非法的出生日期。如“1000-02-03”时,单击“提交”按钮,页面将会提示要求用户输入有效的出生日期,如图4-11所示。
第十二页,共21页。
使页面保留提交信息
如果希望表单中能够保留提交的信息,可以在表单的每个元素中添加value属性,并设置值,如下所示。
第十三页,共21页。
使用addFieldError来添加错误信息
在前面介绍了使用actionError来保存输入校验错误提示信息。actionError其实就是一个ArrayList,将错误信息保存在actionError中,其实就是保存在一个ArrayList中。前面曾讲过类型转换的错误信息是保存在fieldError中,同样输入校验的错误信息也可以通过addFieldError方法来保存到fieldError中。fieldError和actionError不同的是,fieldError是采用Map结构来存储的,所以都是以键值对来保存信息。
那到底是使用fieldError来保存错误提示信息还是使用actionError好呢?这个就依据项目具体要求而定了,如果只是希望在页面中单纯的显示错误提示信息,可以使用actionError来保存错误提示信息;如果希望在相应的文本框中显示错误提示信息,则需要使用fieldError来保存错误提示信息。
下面来看如何将错误提示信息保存到fieldError中。首先可以使用addFieldError方法来替代addActionError方法,从而将错误提示信息保存到fieldError中。其中addFieldError方法中包含两个参数,第一个参数用来输入参数名(也可以说是Action中属性名或者说是表单元素中的name属性值),第二个参数用来输入校验错误提示信息。
第十四页,共21页。
输入校验与类型转换关系
下面来看输入校验和类型转换之间的关系。首先打开上面的注册页面,在年龄文本框中输入一个非法的信息,如“aa”。这时页面将显示错误信息,如图4-16所示。
第十五页,共21页。
动态方法调用以及校验动态方法
Struts 2允许在一个Action中包含多个处理逻辑,从而通过调用Action中不同的方法来处理请求。同样对于每个处理逻辑,都可以提供相应的校验方法。下面介绍如何添加动态方法调用以及校验动态方法的使用。
第十六页,共21页。
动态方法调用
Struts 2允许在一个Action中包含多个处理逻辑。例如在同一个表单中,用户通过不同的按钮提交表单时,在Action中调用不同的方法来处理请求。
下面来看一个简单示例。首先新建如下的JSP页面。该页面同前面的用户注册页非常类似,不同的是增加了一个删除按钮,代码如下所示。
第十七页,共21页。
为action元素指定method属性
上次通过在“删除”按钮中指定其action属性值为register!deleteUser,从而示将表单提交给配置名为regist的Action的deleteUser方法来处理。发现指定action属性值为register!deleteUser这样的方式比较麻烦。如果能够像“注册”按钮那样直接提交给一个register应该会比较好一点。
。在<action>元素中指定action的method属性,则可以让Action类调用指定的方法,代码如下所示。
<action name="deleteUser" class="" method=" deleteUser ">
</action>
通过这种方法,就好比将一个Action定义成了多个逻辑上的Action,A