最近一段时间更新博客不太频繁,struts系列文章一直没有更新。主要是忙于权限项目,关于权限项目的博客也在构思中,过不了几日就能让各位读者看到。
今天主要是讲解ActionServlet中的一个方法processActionForm,当我们在截取字符串,再根据字符串取得ActionMapping(这是前两篇文章中介绍的)之后,我们就要用利用ActionMapping来创建ActionForm了,并且把ActionForm放到request或session中管理。
先来看具体struts中processActionForm方法的具体实现:
这个方法的大体流程是:根据ActionMapping中的name名称查找ActionForm,如果配置了ActionForm,那么就到request或session中查找,如果在request或session中存在已经创建的ActionForm,那么将返回。如果不存在那么会根据ActionForm的完成路径采用反射进行创建,再将创建好的ActionForm放到request或session中,之后返回ActionForm。
具体我们可以跟随断点调试来看看这个方法是如何运行的。
首先还是同上篇博客中的方法一样,先设置断点,之后进入processActionForm方法。
第一个步骤就是创建ActionForm:
通过调用RequestUtils.createActionForm的方法把ActionMapping中的ActionForm字符串生成对象,并且返回。进入这段代码中:
方法首先定义变量nama,并且从mapping中获取值,String name = mapping.getName();也就是我们实例中的LoginForm字符串。之后通过调用FormBeanConfig config =moduleConfig.findFormBeanConfig(name);这句话把相应的LoginForm字符串生成相应的对象。
这里要说明的是我们在struts-config配置文件中,配置过这样一个标签信息:
这个标签在服务器一启动的时候就会利用digester读取这里的配置信息,并且放在FormBeanConfig类中,这样我们可以通过上面那一句话就可以把LoginForm字符串生成相应的对象。
之后调用了ActionForm instance = lookupActionForm(request,attribute, mapping.getScope());这个方法,这个方法主要是查找scope属性中有没有存在ActionForm。具体实现:
这里判断scope属性值是否为request,如果是则从request中读出ActionForm,如果不是则从session中读出。程序如果是第一次执行,那么ActionForm会是为空的。因为这里的ActionForm为空,所以就进入了if判断语句中,最后通过调用return createActionForm(config, servlet);创建ActionForm并且返回。
之后processActionForm就会把返回来的ActionForm放入request或者session中。具体实现就是:
到此为止,ActionForm就创建完成,当ActionForm创建完成之后,就要用其他的方法来往ActionForm中赋值了,具体怎么做的,请关注我的博客,慢慢道来!
分享到:
相关推荐
总之,“深入浅出Struts2”这份资料全面讲解了Struts2的各个关键组成部分,包括其工作原理、配置方式、拦截器机制、OGNL表达式、插件使用以及与Spring的整合,是学习和掌握Struts2框架的宝贵资源。通过深入学习和...
这本书"深入浅出Struts2源代码"是针对该框架源码的深度解析,旨在帮助读者理解Struts2的工作原理,提升开发技能。 Struts2的核心组件包括: 1. **FilterDispatcher**:这是Struts2的入口点,它是一个Servlet ...
综上所述,《深入浅出Struts2》这本书应该详细讲解了这些知识点,并通过实例和代码示例帮助读者掌握Struts2框架的各个方面。通过阅读和实践书中的内容,开发者能够更好地理解和运用Struts2来开发web应用。
Struts 是一个开源的Java Web框架,由Apache软件基金会维护,用于构建基于MVC(Model-View-Controller)模式的Web应用程序。...同时,结合《深入浅出Struts》这本书的理论讲解,将使你的学习事半功倍。
通过学习这本书"深入浅出Struts2.0",开发者不仅可以掌握Struts2的基本用法,还能了解其内在机制,从而更好地运用到实际项目中。书中可能涵盖了上述所有概念的详细解释、实例演示以及最佳实践,有助于提升开发者在...
本资料"深入浅出Struts2"将带你深入了解这个框架的核心概念、配置、拦截器以及实际应用。 1. **基础概念**: - MVC模式:Struts2基于MVC设计模式,它将业务逻辑、数据和用户界面分离,使得代码更易于维护和测试。 ...
《深入浅出Struts源代码》一书旨在帮助读者理解Struts的工作原理,通过分析源代码,让开发者能够深入到框架内部,更好地利用其功能,并解决实际开发中遇到的问题。书中的内容可能包括: 1. **Struts架构**:介绍...
总之,《深入浅出Struts 2》是一本深度和广度兼具的教材,不仅适合初学者,也适用于有一定经验的开发者,它通过实例和详尽的解释,引导读者逐步探索和精通Struts 2框架的各个方面。通过学习这本书,开发者可以更好地...
### 深入浅出Struts2中文版关键知识点概览 #### 1. Struts2框架概述 - **框架定位**:Struts2作为Java Web应用开发中的一个重要框架,继承了Struts1的设计思想,并在此基础上进行了大量优化和扩展。它通过一系列的...
### 深入浅出Struts2:关键知识点解析 #### 一、Struts2概述 **Struts2** 是一款基于 **MVC (Model-View-Controller)** 架构模式的开源Java Web应用程序框架。它由Apache Struts 1发展而来,在保持了Struts 1的...
它专注于展示层的生成,与主流Web框架如struts2、springmvc集成良好,使得开发更为简单易学。同时,它支持多种方式加载模板,例如从文件系统、数据库等,并且可以自定义宏和函数,使开发更加灵活。 然而,...
本资源包含了《深入浅出Struts2》的原书扫描版以及与之配套的完整实例代码,旨在帮助开发者全面理解和掌握Struts2框架的精髓。 《深入浅出Struts2》这本书详细介绍了Struts2的基础概念、核心组件以及高级特性的使用...
本实例将深入浅出地介绍如何使用Struts进行简单的Web应用开发。 首先,理解MVC模式至关重要。在MVC模式中,Model代表业务逻辑,负责处理数据;View是用户界面,展示数据;Controller作为两者之间的桥梁,接收用户...
### Struts框架及标记库详解 #### Struts框架概述 Struts框架,作为Java Web开发中的经典MVC(Model-View-Controller)架构实现之一,自问世以来便因其组件的模块化、灵活性以及高重用性,而备受开发者青睐。其...
综上所述,《Struts in Action中文版》这本书不仅深入浅出地介绍了Struts框架的技术要点,还通过具体的案例分析帮助读者更好地理解和掌握Struts框架的实际应用。对于想要学习Struts框架的开发者来说,这本书是一本...
这个"深入浅出StrutsBookApps"可能包含了多个示例应用,演示了上述概念的实际应用,通过这些实例,学习者可以更直观地理解Struts框架的工作原理和使用方法。解压后,你可以逐个浏览每个示例,研究它们的配置文件、...
"Struts In Action"这本书是Struts技术的权威指南,它深入浅出地介绍了如何使用Struts进行实际开发。 书中可能涵盖了以下知识点: 1. **MVC设计模式**:Struts基于Model-View-Controller(MVC)设计模式,分离了...