struts1在处理请求参数之前,首先会根据配置文件action节点的name属性创建对应的ActionForm。如果配置了name属性,却找不到对应的ActionForm类也不会报错,只是不会处理本次请求的请求参数。
如果找到了对应的ActionForm类,则先判断是否已经存在ActionForm的实例,如果不存在则创建实例,并将其存放在对应的作用域中。作用域由配置文件action节点的scope属性来指定,其值可以为request或session(存储在作用域中的属性名由action节点配置的attribute属性指定,如果没有该属性,则由name属性指定)。其部分源代码如下:
//ClassName:org.apache.struts.action.RequestProcessor
protected ActionForm processActionForm(HttpServletRequest request,
HttpServletResponse response, ActionMapping mapping) {
// Create (if necessary) a form bean to use
ActionForm instance =
RequestUtils.createActionForm(request, mapping, moduleConfig, servlet);
if (instance == null) {
return (null);
}
// Store the new instance in the appropriate scope
if (log.isDebugEnabled()) {
log.debug(" Storing ActionForm bean instance in scope '"
+ mapping.getScope() + "' under attribute key '"
+ mapping.getAttribute() + "'");
}
if ("request".equals(mapping.getScope())) {
request.setAttribute(mapping.getAttribute(), instance);
} else {
HttpSession session = request.getSession();
session.setAttribute(mapping.getAttribute(), instance);
}
return (instance);
}
接着,struts1开始处理request请求参数,并将其放置在一个HashMap中,最后调用
//bean为ActionForm实例
//properties为存放请求参数的HashMap
BeanUtils.populate(bean, properties);
将请求参数中对应参数的值赋给ActionForm中对应的属性名,并且支持嵌套属性赋值。例如名为user.name的参数值,BeanUtils将会赋值给ActionForm中属性名为user的对象的name属性。
分享到:
相关推荐
Struts1.x的验证机制基于ActionForm,利用Commons Validator等库进行数据校验,而Struts2.x则采用了更为强大的验证框架,如XWork Validator,支持链式验证和更复杂的验证规则,使得数据验证更加全面和细致。...
11. **生命周期管理**:Struts1.x对ActionForm对象的生命周期进行了管理,包括初始化、清理、创建和销毁等步骤,确保了内存的合理使用。 学习Struts1.x需要理解其设计理念,掌握配置文件的编写,熟练运用Action、...
3. **配置文件**:主要包括struts-config.xml,这是Struts1.x的主配置文件,用于定义Action、ActionForm、ActionMapping等组件。在这里,你可以配置URL与Action类的映射,设置数据验证规则等。 4. **ActionForm**:...
Struts1.x是一款经典的Java Web框架,由Apache软件基金会开发并维护。它是MVC(Model-View-Controller)设计模式的实现,极大地简化了Java Web应用程序的开发过程。本资源集合包含了所有最新的Struts1.x项目应用,为...
通过这个简单的Struts1.x登录示例,你可以了解Struts1.x的MVC工作流程、配置文件的编写以及Action和ActionForm的使用。然而,需要注意的是,Struts1.x已经较为过时,现代的Web开发更多地转向了Spring MVC、Play ...
Struts 1.x 是一个基于 Model-View-Controller (MVC) 设计模式的 Java Web 开发框架,由 Apache 软件基金会开发并维护。它在20世纪末到21世纪初广泛应用于企业级Web应用开发,因其强大的功能和良好的社区支持而受到...
通过分析这个Struts1.x_Project,我们可以学习到如何配置Struts框架,理解ActionForm、Action、Struts-config.xml的作用,以及如何实现I18N和表单验证。同时,项目的数据库操作部分也是Java Web开发中重要的实践环节...
在学习Struts1.x的过程中,理解MVC模式以及ActionForm和Action的作用至关重要。此外,熟练掌握配置文件的编写,能让你更有效地组织和控制应用的流程。随着对框架的深入理解和实践,你将能够构建出更加复杂和功能丰富...
本篇文章将深入探讨Struts1.x和Struts2.x在向Action中填充JSP参数的原理。 Struts1.x的工作原理: Struts1的核心是ActionServlet,它是一个实现了Servlet接口的控制器。当用户发起HTTP请求时,请求会被Dispatcher...
Struts 1.x 是一个经典的Java Web开发框架,由Apache软件基金会开发,它极大地简化了MVC(模型-视图-控制器)架构的实现。如果你正在寻找如何搭建Struts 1.x的开发环境,以下是一些关键的知识点,以及这些指定的jar...
这个名为"Struts1.x.rar"的压缩包文件,结合其描述"Struts1.x.rar购物网和所需的包.rar,对初学者有帮助",暗示其中包含了构建一个基于Struts1.x的购物网站的相关资源和依赖库。在学习和使用Struts1.x框架构建电子...
尽管现在Struts2已经成为主流,但Struts1.x的原理和知识仍然对理解Web应用开发有重要意义。 Struts1.x的核心概念包括: 1. **ActionServlet**:这是Struts框架的心脏,负责处理所有的HTTP请求。它根据配置文件中的...
本教程将详细介绍Struts 1.x的基本原理和使用方法,让读者可以快速入门并提高对Struts 1.x框架的应用能力。同时,教程中也会涉及与Struts 2.x的比较,帮助开发者理解两个版本之间的相似之处和差异。 ### Struts 1.x...
总的来说,Struts1.x_action这个资源包可能包含了一些预配置的Action类、ActionForm类、配置文件示例以及相关的JSP页面,帮助开发者快速搭建一个基于Struts1.x的Web应用。使用这个包,开发者可以直接导入项目,然后...
这个例子虽然简单,但涵盖了 Struts 1.x 开发的基本流程,包括环境搭建、ActionForm 和 Action 类的编写以及配置文件的设置。接下来,你可以继续探索更多关于 Struts 的高级特性,如拦截器、国际化支持等,以进一步...
Struts1.x是一个经典的Java Web框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在Struts1.x中,JDBC(Java Database Connectivity)是常用于与数据库交互的技术,它允许开发者通过Java代码来执行SQL语句,...
要掌握Struts1.x和Hibernate,开发者需要理解MVC模式、Servlet和JSP的基础,以及数据库原理。同时,深入学习Struts1.x的生命周期、Action和ActionForm的使用,以及Hibernate的对象映射、查询语言(HQL)和事务管理,...
3. **配置文件**:`struts-config.xml`是Struts1.x的核心配置文件,用于定义Action、ActionForm、ActionForward等元素,以及数据源和国际化资源等。 二、ActionForm与数据绑定 1. **ActionForm**:ActionForm对象...
本例子源码旨在帮助初学者理解并搭建Struts1.x的开发环境。 在开始搭建环境之前,首先需要了解Struts1.x的基本构成。Struts1.x框架的核心组件包括ActionServlet、ActionForm、Action、Tiles等。ActionServlet是入口...