上一篇博客主要是讲解ActionServlet中的一个方法processActionForm,当我们在截取字符串,再根据字符串取得ActionMapping之后,我们就要用利用ActionMapping来创建ActionForm,并且把ActionForm放到request或session中管理。获得ActionForm之后,我们就要将ActionForm中的数据放到Mapping中,以便实例化Action。在Struts中有一个方法是专门把ActionForm的数据放到Mapping的,这个方法就是processPopulate。今天我们就来详细来看看这个方法。
首先这个方法主要的功能是将表单数据放到Map中,并且将Map的值根据ActionForm类型转换好后设置到ActionForm中。
这个方法具体的流程是首先执行ActionForm中的reset方法进行重置,然后得到表单中所有输入域的name名称,再调用request.getParameterValues(),根据name名称得到相应的值,最后将表单中的数据全部放到一个map中,map的key为表单输入域的名称,map的value为表单输入域的值(字符串数组),接下来调用一个第三方组件BeanUtils,将Map中的值,根据ActionForm中的类型先转换好,再调用ActionForm中的setter方法设置到ActionForm上。
下面咱们来跟随源代码来看看这个方法的实现过程.首先还是和以前博客一样设置断点,进入process方法,找到processPopulate方法:
进入这个方法,看到这个方法的实现源代码:
其中,form.reset(mapping, request);这个方法就是讲form重置,作用是使ActionForm中的值恢复初始状态。
下面RequestUtils.populate(form, mapping.getPrefix(), mapping.getSuffix()这个方法就是要完成填充map和转换类型等操作的,具体实现:
这段实现的前半部分是关于上传的代码,因为咱们这个实例不和上传有关,所以直接忽略,直接到
这段代码,这段代码主要是获得表单的所有名称,之后通过下面这段代码:
遍历名称,并且通过parameterValue = request.getParameterValues(name);获得名称对应的value值,之后通过
将名称作为key值,讲名称的value值作为value值添加到map中,到此为止,我们就讲表单数据添加到了map中。
随后,调用第三方的组件来实现类型转换:
这个方法会遍历ActionForm的值的类型,并且讲Map中的值的类型改为和ActionForm对应的类型。
到这里processPopulate的方法就实现完毕,实现了这个方法有什么用处呢?敬请等待下一篇博文!
分享到:
相关推荐
struts框架验证---输入校验器大全
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
Struts框架中struts-config.xml文件配置小结
struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。
包含Struts2框架的核心类库,以及Struts2的第三方插件类库 struts2-core-2.0.14 xwork-2.0.7 ognl-2.6.11 commons-logging-1.0.4 freemarker-2.3.8 等等。
struts-2.3.34-all框架,包含使用说明和所有的jar包,包含实例war文件,放入服务器可直接访问
Jsp Struts框架经典项目---房屋管理系统 Jsp Struts框架经典项目---房屋管理系统 Jsp Struts框架经典项目---房屋管理系统 Jsp Struts框架经典项目---房屋管理系统 Jsp Struts框架经典项目---房屋管理系统
深入浅出Struts2源码和例子程序,非常全面 一个不少。
深入浅出Struts2 这本书的 如果你想学习Struts2 框架 值得看一看
│深入浅出STRUTS 2 Struts Ti却发现了二者在技术与开发人员这两个层面上的共同之处,不久之后,两个项目就在WebWork的技术基础上进行了合并2。 当我们说起WebWork的时候,我们实际上说的是两个项目——XWork和...
Struts的标签--实例对于一些标签中实例应用
struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载
struts-1.3.8-all.zip 官方完整包
一个有关学生管理的Struts框架开发的实例,想学习struts框架的可以参考一下,实例比较简单易懂,很容易理解struts框架的精髓。
深入浅出Struts2-中文.pdf
logging-1.0.4.jar commons-validator-1.3.1.jar jstl-1.0.2.jar oro-2.0.8.jar standard-1.0.2.jar struts-core-1.3.8.jar struts-el-1.3.8.jar struts-extras-1.3.8.jar struts-faces-...
java框架之struts2,struts-2.3.24-all_含有实例可用于环境搭建
struts-2.5.16-all框架,里面包含所有jar包和使用说明,还有strtus项目的实例,直接放入服务器即可运行
J2EE框架技术Struts-spring-hibernate-JSF全套详细课件.zip