`
jiasongmao
  • 浏览: 661151 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

struts2后台ACTION中方法的执行顺序

阅读更多
后台ACTION类:
public class DownloadAction extends ActionSupport {
private String downloadFileName;
private String inputPath;

public DownloadAction(){
System.out.println("DownloadAction^^^^^^^^^^^^^^^^^^");
}

    public void setInputPath(String value) {

       inputPath = value;

    }

   public InputStream getInputStream() throws Exception {
   String photoName=ActionContext.getContext().getSession().get("photoName").toString();
       return ServletActionContext.getServletContext().getResourceAsStream ("\\files\\"+photoName);

   }    
   public String execute() throws Exception {
         return SUCCESS;
   }  
  
   public String getDownloadFileName() {
   System.out.println("getDownloadFileName^^^^^^^^^^^^^^^^^^^^^^");
this.downloadFileName=ActionContext.getContext().getSession().get("photoName").toString();
return downloadFileName;
}

public void setDownloadFileName(String downloadFileName) {
this.downloadFileName = downloadFileName;
}

public void validate(){
System.out.println("validate^^^^^^^^^^^^^^^^^^^^^^^^^^");
}

public String download(){
System.out.println("download^^^^^^^^^^^^^^^^^^^^^^");
return SUCCESS;
}

}
struts.xml中action的配置:
<action name="download" class="com.globalzt.struts2.action.DownloadAction" method="download">
            <result name="success" type="stream">
                <param name="contentType">image/jpg</param>
                <param name="inputName">inputStream</param>
                <!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性对应action类中的方法 getDownloadFileName() -->
                <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
                <param name="bufferSize">4096</param>
            </result>
        </action>

执行顺序:
DownloadAction^^^^^^^^^^^^^^^^^^
validate^^^^^^^^^^^^^^^^^^^^^^^^^^
download^^^^^^^^^^^^^^^^^^^^^^
getDownloadFileName^^^^^^^^^^^^^^^^^^^^^^

由此可见,其执行顺序为:
1.构造函数
2.验证函数
3.目标函数
4.属性的get方法


补充:
如果重写了父类的excute()方法,那么如果指定了触发的ACTION,则不执行该excute()函数。

分享到:
评论

相关推荐

    使用struts2框架来实现前台与后台的交互

    6. **动态方法调用**:Struts2支持动态方法调用,即可以通过URL直接调用Action类的方法,无需在配置文件中一一映射。 7. **插件支持**:Struts2拥有丰富的插件库,如Struts2-dojo-plugin用于增强AJAX功能,Struts2-...

    struts2与前台交互时序

    Action Mapping定义了特定的URL如何映射到特定的后台Action类,这使得Struts2能够根据请求路由到相应的业务逻辑。 3. **拦截器(Interceptors)**:在Action执行之前,一系列的拦截器会按照预定义的顺序被调用。这些...

    struts2 sort实例

    在Struts2中,提供了丰富的标签库来简化视图层的开发,其中包括`sort`标签,它允许我们在JSP页面上对数据集合进行排序。这个实例将深入探讨如何使用`struts2 sort`标签及其相关概念。 首先,`sort`标签是Struts2的...

    STRUTS2优缺点

    - **STRUTS2 的 Action 设计更灵活:**与 STRUTS1 中 Action 必须继承自 `Action` 类不同,STRUTS2 允许 Action 作为 POJO(Plain Old Java Object)存在,这意味着开发者可以更加自由地设计业务逻辑类。...

    struts2完整的java代码

    1. **Action类**:在Struts2中,业务逻辑主要由Action类处理。Action类是控制层的主体,它接收来自视图层的请求,处理业务逻辑,并通过Result返回响应。 2. **配置文件**:Struts2的配置文件通常为struts.xml,其中...

    基于Struts 2实现的博客网站

    1. **Action**:Struts 2中的Action类是业务逻辑的载体,负责处理用户请求。Action类通常继承自`com.opensymphony.xwork2.ActionSupport`或自定义基类,并重写`execute()`方法来实现特定功能。 2. **配置文件**:...

    gui gu struts2 dong

    1. **动作(Action)**:在Struts2中,Action是业务逻辑的载体,负责处理用户的请求。开发者可以创建自定义的Action类,继承自`org.apache.struts2.dispatcher.ng.ExecuteAction`或实现`...

    基于Struts2在线考试系统

    Struts2通过配置文件(struts.xml)定义了各个Action与Action方法的映射,以及拦截器的顺序和配置。在这个在线考试系统中,Struts2负责接收用户的登录请求、题目浏览请求等,并调用相应的业务逻辑处理这些请求。 **...

    struts2写的在线考试系统

    在实际开发过程中,开发者还需要编写Action、Interceptor、DAO(数据访问对象)和Service(业务逻辑层)等组件,使用Struts2的配置文件(struts.xml)进行路由和拦截器的设定。同时,为了提供友好的用户界面,通常会...

    Struts2的拦截器

    其中,拦截器(Interceptor)是Struts2框架的一个核心特性,用于处理Action的公共行为,类似于Spring框架中的AOP(面向切面编程)。拦截器可以实现在Action执行前后进行一些操作,如权限检查、日志记录、数据校验等...

    struts2_工作流程

    - **ExecuteAndWaitInterceptor**:后台执行Action并显示等待页面。 - **ExceptionMappingInterceptor**:异常处理。 - **FileUploadInterceptor**:支持文件上传。 - **I18nInterceptor**:实现国际化。 - **...

    Struts2拦截器及其用法详细说明

    Struts2 拦截器是Struts2框架的核心组件之一,它们允许开发者在Action执行前后插入自定义逻辑,实现跨切面的功能。拦截器基于Java的动态代理机制,能够独立于Action和Struts2框架进行扩展和复用。下面我们将深入探讨...

    济南大学 第03章_Struts2应用_课堂.ppt

    Struts 2提供了一系列的标签库,这些标签可以方便地在JSP页面中使用,简化视图层的开发,如s:form、s:textfield、s:submit等,它们与Action对象和属性直接绑定,使得页面与后台数据的交互更为简单。 3.4 Struts 2...

    struts2demo

    在"struts2demo"的JSP文件中,你可以看到这些标签的使用,它们会与后台Action类的方法进行交互,实现数据的提交和接收。 在"struts2demo"的压缩包中,"struts2"很可能是项目的根目录,包含了所有的源代码、配置文件...

    struts2写的web程序

    1. **Action类**:在Struts2中,Action类是业务逻辑的主要载体。它负责接收请求、处理数据并返回结果。每个Action类通常对应一个特定的用户操作或功能。 2. **配置文件**:Struts2的配置信息主要包含在两个文件中,...

    struts2拦截器详述ppt

    拦截器链(Interceptor Chain)的概念也是Struts2中非常重要的一部分。拦截器链是由一系列按照特定顺序排列的拦截器组成的。当访问被拦截的方法或字段时,这些拦截器会按照它们在链中的顺序依次被调用。 ##### 1.2 ...

    图书系统(Struts2)_JavaEE_图书管理_图书管理系统_

    视图层在Struts2中通常由JSP或FreeMarker模板实现。图书管理系统中的视图展示图书信息、用户操作反馈等,与Struts2的Action通过ModelDriven或ValueStack机制进行数据绑定,将后台处理的结果传递给前端显示。 标签库...

    struts2类型转换深入总结

    在Struts2中,类型转换是一个关键特性,它允许框架将HTTP请求中的数据自动转换为Action类中相应字段的类型。这篇博客“Struts2类型转换深入总结”深入探讨了这个主题,以下是对这一知识点的详细说明。 1. **类型...

    struts2 +jquey uploadify3.2 实现多文件上传,可预览、删除、排序

    8. **后端处理**:在Java代码中,通常会使用Servlet或Struts2的Action来接收上传的文件,处理文件存储,以及返回相应的JSON响应,以便Uploadify更新UI状态。 9. **安全考虑**:文件上传时需要防止恶意文件,例如...

Global site tag (gtag.js) - Google Analytics