j2ee项目实训struts框架技术——第5章struts框架actionform组件及应用第3部分内容摘要:
查。 最后的实现结果请见 【例 533】 中的html:form标签中的 onsubmit 事件定义的示例。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/21 页 【例 533】 html:form标签中的 onsubmit 事件定义 html:form action=/?action=goLogin method=post onsubmit=return CheckUserFormInput(this)。 表单中其他的标签,再此省略 /html:form 同时在用户登陆的页面中,设计一个 JavaScript 脚本函数 CheckUserFormInput,在该CheckUserFormInput 函数中对用户提交的 验证码 、 用户名称和密码进行检查。 最后的实现脚本函数代码请见 【例 534】所 示。 【例 534】 对用户登陆功能表单进行数据 验证的 脚本函数 的示例 script language=JavaScript type=text/javascript function CheckUserFormInput(theform){ if ( == 0){ alert(请输入本系统所提示的验证码。 )。 return false。 } if(==0){ alert(请输入用户名 )。 return false。 } if(==0){ alert(请输入您的密码。 )。 return false。 } return true。 } /script 然后再将本 Web 应用 系统进行部署、并启动 Tomcat 服务器,在浏览器中输入用户登陆功能页面的 URL 地址 后,将出现下面图 所示的用户登陆功能表单 的结果。 为了能够触发 CheckUserFormInput 脚本函数 ,人为地 在该表单中 不 输入指定的数据项目,比如在 验证码 输入条中没有输入系统后台所提 供杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/21 页 的 验证码 ,将会出现下面的图 所示的错误对话框,并在该错误对话框中显示在 脚本函数 CheckUserFormInput 中所给定的错误提示信息。 图 出现未输入验证码的错误提示信息 但由于 客户端 验证 技术 是不安全的 , 可以绕过原始 请求 页面中的任何脚本 而 很容易地欺骗一个正在提交的 Web 页面 导致应用系统存在安全隐患。 当然,采用 客户端 验证 技术也有一定的优势,主要体现在 对用户的立即反馈, 同时也 避免了一次服务器 端的 往返,节省了时间和带宽。 对 找回注册密码 功能表单采用 ActionForm 组件中的 validate 验证 方法 进行检查 1)在项目中 添加与国际化 技术实现 相关的各个资源字符串文件 由于在 ActionForm 组件的 validate 验证 方法中所产生出的错误提示是在项目的 资源字符串文件中所定义 出 的错误信息,而为了能够在不同语言类型的浏览器中能够产生出“本地化”的错误 提示信息文本,需要在不同语言所对应的 资源字符串文件中 , 定义出 错误提示项目。 在本项目中主要是针对中文和英文两种不同的语言环境提供 资源字符串文件 ,具体的结果请见图 所示。 1) 设置默认的资源文件 2) 英文环境的资源文件 3) 中文环境的资源文件 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 11/21 页 图 添加与国际化技术实现相关的各个资源字符串文件 的结果图示 2)编程 UserInfoActionForm 类中的 validate 方法 在包装找回用户注册密码表单的 UserInfoActionForm 类的 validate 方法 中,对所获得的请求结果数据进行验证,如果出现了错误,将通过在 ActionErrors 对象中封装对应的错误提示信息 ActionMessage 对象实例,然后再将该 ActionErrors 对象返送到错误显示的页面中。 具体的功能实现代码请见 【例 535】所示 , 考虑到本书的篇幅 , 只附录了部分功能实现的代码。 【例 535】 UserInfoActionForm 类中的 validate 方法的代码示例 package。 import。 import .*。 public class UserInfoActionForm extends DynaActionForm { public ActionErrors validate(ActionMapping mapping,HttpServletRequest request){ String userName=(String)(userName)。 String userPassWord=(String)(userPassWord)。 ActionErrors actionErrors=new ActionErrors()。 if((userName==null)||(userName==)||(()==0)){ (userName, new ActionMessage())。 } else if((userPassWord==null)||(userPassWord==)||(()==0)){ (userPassWord, new ActionMessage())。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 12/21 页 } //。 对 用户注册功能表单中的其他字段进行检查的代码在此省略 return actionErrors。 } public void reset(ActionMapping mapping, HttpServletRequest request) { (mapping)。 } } 3)对 UserInfoActionForm 类中的 validate 方法 的有效性进行 测试 同样也将本系统进行部署、并启动 Tomcat 服务器,在浏览器中输入 找回用户注册密码功能页面的 URL 地址 (请见 图 所示 ) 后,将出现 找回用户注册密码 功能表单。 如果在该表单中没有输入指定的数据项目,比如在用户名称的输入条中没有输入用户名称,将会出现下面的图 所示的错误提示信息 ,而 错误提示信息的内容 是 来自于 资源字符串文件。 图 未输 入用户名称时的错误提示信息 对用户注册功能表单采用 Action 组件中的 execute 方法进行检查 在 【例 535】中示例了 ActionForm 组件中的 validate 验证 方法 进行数据 验证 的代码示例 ,但也可以采用 Action组件中的 execute方法进行请求数据的检查。 哪如何区分 Action和 ActionForm 组件在数据 验证方面 的分工呢。 秉着 MVC 所倡导的“表示”和“模型”相互分离的原则,也就是 与表示层相关 的验证工作应该放在 ActionForm 组件中的 validate 方法来完成,比如表单中的数据 输入不能为空, Email 地址的格式是否正确等“数据格式”方面的检查工作 —— 利用该方法可以代替客户端的 JavaScript 脚本的应用;而与具体业务逻辑相关的数据验证要求 —— 如用户名称是否同名等“数据逻辑”方面的检查工作则应该放入 Action 组件类中实现。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 13/21 页 下面的 【例 536】所示为本项目中对 用户注册表单采用 Action 组件 execute 方法进行数据验证检查的代码示例,当注册用户输入的用户名称为系统中已经存在的用户名称(为了节省本书的篇幅,没有对数据库表中的数据进行访问,而是直接规定用户名称为“ yang”)时 , 将返回到用户注册表单页面、并显示输出错误提示信息。 具体的实现代码请见 【例 536】所示,同时注意其中的黑体部分的代码片。j2ee项目实训struts框架技术——第5章struts框架actionform组件及应用第3部分
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。