`
long_yu2
  • 浏览: 337294 次
社区版块
存档分类
最新评论

深入浅出学习Struts框架(十二)-分析Struts框架实例7

 
阅读更多

上一篇博客主要是讲解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的方法就实现完毕,实现了这个方法有什么用处呢?敬请等待下一篇博文!

分享到:
评论

相关推荐

    深入浅出Struts2.pdf

    总之,“深入浅出Struts2”这份资料全面讲解了Struts2的各个关键组成部分,包括其工作原理、配置方式、拦截器机制、OGNL表达式、插件使用以及与Spring的整合,是学习和掌握Struts2框架的宝贵资源。通过深入学习和...

    深入浅出Struts2源代码

    这本书"深入浅出Struts2源代码"是针对该框架源码的深度解析,旨在帮助读者理解Struts2的工作原理,提升开发技能。 Struts2的核心组件包括: 1. **FilterDispatcher**:这是Struts2的入口点,它是一个Servlet ...

    《深入浅出Struts2》电子版全书.rar

    综上所述,《深入浅出Struts2》这本书应该详细讲解了这些知识点,并通过实例和代码示例帮助读者掌握Struts2框架的各个方面。通过阅读和实践书中的内容,开发者能够更好地理解和运用Struts2来开发web应用。

    《深入浅出struts》 源代码

    Struts 是一个开源的Java Web框架,由Apache软件基金会维护,用于构建基于MVC(Model-View-Controller)模式的Web应用程序。...同时,结合《深入浅出Struts》这本书的理论讲解,将使你的学习事半功倍。

    深入浅出Struts2.0

    通过学习这本书"深入浅出Struts2.0",开发者不仅可以掌握Struts2的基本用法,还能了解其内在机制,从而更好地运用到实际项目中。书中可能涵盖了上述所有概念的详细解释、实例演示以及最佳实践,有助于提升开发者在...

    深入浅出struts2

    本资料"深入浅出Struts2"将带你深入了解这个框架的核心概念、配置、拦截器以及实际应用。 1. **基础概念**: - MVC模式:Struts2基于MVC设计模式,它将业务逻辑、数据和用户界面分离,使得代码更易于维护和测试。 ...

    深入浅出Struts源代码

    《深入浅出Struts源代码》一书旨在帮助读者理解Struts的工作原理,通过分析源代码,让开发者能够深入到框架内部,更好地利用其功能,并解决实际开发中遇到的问题。书中的内容可能包括: 1. **Struts架构**:介绍...

    深入浅出Struts 2 DOC格式

    总之,《深入浅出Struts 2》是一本深度和广度兼具的教材,不仅适合初学者,也适用于有一定经验的开发者,它通过实例和详尽的解释,引导读者逐步探索和精通Struts 2框架的各个方面。通过学习这本书,开发者可以更好地...

    深入浅出struts2中文版

    ### 深入浅出Struts2中文版关键知识点概览 #### 1. Struts2框架概述 - **框架定位**:Struts2作为Java Web应用开发中的一个重要框架,继承了Struts1的设计思想,并在此基础上进行了大量优化和扩展。它通过一系列的...

    深入浅出Struts2(CN)

    ### 深入浅出Struts2:关键知识点解析 #### 一、Struts2概述 **Struts2** 是一款基于 **MVC (Model-View-Controller)** 架构模式的开源Java Web应用程序框架。它由Apache Struts 1发展而来,在保持了Struts 1的...

    深入浅出FreeMarker(一)-基础教程.pdf

    它专注于展示层的生成,与主流Web框架如struts2、springmvc集成良好,使得开发更为简单易学。同时,它支持多种方式加载模板,例如从文件系统、数据库等,并且可以自定义宏和函数,使开发更加灵活。 然而,...

    深入浅出Strust2 原书扫描版及完整实例代码

    本资源包含了《深入浅出Struts2》的原书扫描版以及与之配套的完整实例代码,旨在帮助开发者全面理解和掌握Struts2框架的精髓。 《深入浅出Struts2》这本书详细介绍了Struts2的基础概念、核心组件以及高级特性的使用...

    struts简单实例详解

    本实例将深入浅出地介绍如何使用Struts进行简单的Web应用开发。 首先,理解MVC模式至关重要。在MVC模式中,Model代表业务逻辑,负责处理数据;View是用户界面,展示数据;Controller作为两者之间的桥梁,接收用户...

    struts框架及标记库

    ### Struts框架及标记库详解 #### Struts框架概述 Struts框架,作为Java Web开发中的经典MVC(Model-View-Controller)架构实现之一,自问世以来便因其组件的模块化、灵活性以及高重用性,而备受开发者青睐。其...

    《Struts in Action中文版》真正完整版

    综上所述,《Struts in Action中文版》这本书不仅深入浅出地介绍了Struts框架的技术要点,还通过具体的案例分析帮助读者更好地理解和掌握Struts框架的实际应用。对于想要学习Struts框架的开发者来说,这本书是一本...

    深入浅出StrutsBookApps.rar

    这个"深入浅出StrutsBookApps"可能包含了多个示例应用,演示了上述概念的实际应用,通过这些实例,学习者可以更直观地理解Struts框架的工作原理和使用方法。解压后,你可以逐个浏览每个示例,研究它们的配置文件、...

    Struts In Action

    "Struts In Action"这本书是Struts技术的权威指南,它深入浅出地介绍了如何使用Struts进行实际开发。 书中可能涵盖了以下知识点: 1. **MVC设计模式**:Struts基于Model-View-Controller(MVC)设计模式,分离了...

    Struts.in.Action(Struts在行动)

    这本书深入浅出地介绍了Struts的核心概念、组件以及最佳实践。 1. **Struts框架概述** - MVC模式:Struts是基于Model-View-Controller设计模式的,它将应用的业务逻辑、数据模型和用户界面分离,使代码更易于维护...

Global site tag (gtag.js) - Google Analytics