第三章 working with struts2 actions
1. Action的三个主要功能:处理请求,数据载体,返回页面的定向
2. Action是用于处理业务逻辑的
3. Action配置文件的package的属性,name(required)、namespace、extends、abstract(true表示定义继承的组件,而非action)
4. Action配置文件的package管理,同类的继承相似,也可以覆盖,重载父package中的成员,最顶层是struts-default包(包含了默认的拦截器栈,defaultStack)。
5. Struts2的actions不一定需要实现Action接口,或者继承ActionSupport,只要有execute()方法即可。
6. 重要的缺省拦截器:
params,将数据从request传入Action的JavaBeans的属性中;
workflow,(需要Action类继承ActionSupport)在validate()方法中实现数据校验
在默认的拦截器栈(defaultStack)中,params位于workflow之前,因为需要先将数据保存到action中,然后再在validate()方法中校验。校验时,可以通过addFieldError ()等方法记录错误。在validate()方法结束后,workflow拦截器会检查错误信息是否存在,如果存在则返回到输入页面INPUT。
validate()用于数据校验,使execute()方法专注于业务逻辑。
7. ActionSupport 实现Action、Validateable、ValidationAware、TextProvider、LocaleProvider、Serializable接口。
Validateable(validate())主要用于数据校验
ValidationAware(addFieldError ( String fieldName, String errorMessage ),addActionError ( String errorMessage ))用于添加错误信息,提供方法用于判断是否有错误存在,如果存在错误,由workflow拦截器将定向到input页面;
TextProvider(getText())用于读取资源文件、LocaleProvider(getLocale())这两个接口一起完成国际化的工作(根据浏览器设定的编码类型);
8. 传送数据到action方法有三种,simple javaBeans;Object-backed JavaBeans properties;Model Driven
9. Object-based JavaBeans properties,需要单独建立一个类,用于保存域模型,对象的创建有Struts2框架完成,使用对象的时候,要采用“对象名.属性”来访问,无论是在java文件中还是JSP标签中。无需自己在Action中创建对象。
10. ModelDriven,需要implements ModelDriven,需要自己在Action中创建对象,以及实现getModel()方法,例如
private User user = new User();
public Object getModel() {
return user;
}
需要注意的有两点:不要改变user的引用,如果在execute()方法中改变了user所引用的对象,框架仍然指向原有的对象;采用ModelDriven时,传入的参数与域模型的属性同名时候,就将内容保存到该属性中去,所以要注意,一些本来不想暴露的属性,可能会被恶意写入。
11. FileUpload拦截器位于params拦截器之前,它将File、ContentType、FileName等参数放入request中,由params来处理这些参数,将参数传入action。
action中命名规则,JSP中如有<s:file name="pic" label="Picture" /> ,则action中的变量名分别为
File pic;
String picContentType;
String picFileName;
将这些参数变为数组即可接收多个文件。可以设置上次文件大小的限制
典型的文件上传JSP代码
<s:form action="ImageUpload" method="post" enctype="multipart/form-data">
<s:file name="pic" label="Picture" />
<s:submit />
</s:form>
分享到:
相关推荐
### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...
- **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...
本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与ValueStack、Tags以及项目中的关键实践。 **一、Action** Action是Struts2中处理业务逻辑的核心组件,它是实现了`...
笔记中可能详细讲解了Struts2的配置文件,如struts.xml,它是整个应用的配置中心,定义了Action的映射、结果类型、拦截器栈等。在Action配置中,我们可以指定Action类、方法以及对应的URL路径,实现请求与业务的关联...
13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...
### 魔乐科技Struts2.x框架笔记详解 #### 一、框架开发基础与特性 **框架开发来源**:框架开发的核心在于反射机制的应用,它使得开发者能够以更为灵活的方式构建应用程序。在Struts2.x框架中,这一点体现得尤为...
本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...
本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...
### Struts2 技术内幕读书笔记(1) #### WEB开发浅谈 ##### 面向对象浅谈 面向对象编程(Object-Oriented Programming,OOP)是一种软件开发范式,它通过模拟现实世界中的对象及其交互来构建程序结构。这种编程...
这篇读书笔记主要涵盖了Struts2的核心概念和配置细节,对于初学者来说,是理解Struts2工作原理和配置的宝贵资料。 1. Package配置: 在Struts2中,`<package>`元素用来组织和配置相关的Action。`name`属性定义了包...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
本笔记主要涵盖了Struts2的基础知识,包括但不限于配置、Action、拦截器、结果类型以及异常处理等内容。 1. **Struts2框架简介** Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,弥补了Struts1在...
本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace Namespace在Struts2中主要用于组织和隔离Action,它决定了Action的访问路径。默认情况下,Namespace为...
Struts2是一个强大的MVC(Model-...Struts2的核心配置文件是`struts.xml`,它负责定义Action、拦截器栈、结果类型、包配置等。在这个文件中,你可以声明你的Action类,定义它们对应的方法以及结果页面。例如: ```xml ...
### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...
### Struts2 综合知识点解析 #### 一、Struts2 概述与历史背景 **Struts2** 是一款流行的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发过程。Struts2 提供了一...
本篇超详细学习笔记将带你逐步深入理解Struts2的核心概念和运作机制。 首先,让我们了解Struts2的基本特性。Struts2是一个基于Servlet的框架,它通过将JSP作为视图(View),Servlet作为控制器(Controller),并将...
2. **Package**:包是Struts2中的一个关键概念,用于组织相关的Action和结果(Result)。包可以继承其他包,从而实现配置的复用和分层。`package`标签的属性包括name、extends、namespace等,其中,namespace用于...
2. **struts.xml文件**: 此文件是Struts2的主要配置文件,用于定义应用程序的业务逻辑,如Action映射、拦截器栈等。 - **配置示例**: ```xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD ...
本笔记将深入探讨Struts2的核心概念、执行流程、类型转换、输入验证和国际化等方面。 **一、Struts2框架基础** Struts2是Apache软件基金会的一个开源项目,它是基于拦截器的MVC框架,继承了WebWork框架的优点。...