`
22cgreen
  • 浏览: 55213 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Action.java

阅读更多
此类为action的继承的类,其中主要以下几个方法:
1)execute
2)addErrors
3)addMessages
4)saveErrors
5)saveMessages

其中excute方法为
public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {
        return null;
    }
    是真正要调用执行的方法,因此在继承后要重写此方法,action类中的execute什么都没做,只是返回了一个null
    如果我们在继承的action类中,不重写此方法,那么我们自己的action将什么也不做。很显然struts是通知这个方法
    作为入口来执行我的action部门,包括把参数传入逻辑类(javabean)和进行转向等操作。
   
addErrors和saveErrors已被addMessages和saveMessages取代,
而addMessages和saveMessages的作用就是把一些信息返回给前台,用于<html:messages显示用的。
-----------------------------------------------------------------------------------------------
  protected void addMessages(HttpServletRequest request,
        ActionMessages messages) {
        if (messages == null) {
            //  bad programmer! *slap*
            return;
        }

        // get any existing messages from the request, or make a new one
        ActionMessages requestMessages =
            (ActionMessages) request.getAttribute(Globals.MESSAGE_KEY);
        //Globals.MESSAGE_KEY为org.apache.struts.action.ACTION_MESSAGE

        if (requestMessages == null) {
            requestMessages = new ActionMessages();
        }

        // add incoming messages
        requestMessages.add(messages);

        // if still empty, just wipe it out from the request
        if (requestMessages.isEmpty()) {
            request.removeAttribute(Globals.MESSAGE_KEY);

            return;
        }

        // Save the messages
        request.setAttribute(Globals.MESSAGE_KEY, requestMessages);
    }
   
    注:addMessages的主要作用,就是把定义的ActionMessages加入到request中去。同时如果request中原来有的话,将会合并远来的ActionMessages
    然后再保存在request中。
   
   
    而saveMessages不同,他会在保存前把原来相同的名称ActionMessages进行清除,然后保存自己,因此可以确定saveMessages永远
    只保存最后一个ActionMessages到request中。
    --------------------------------------------------------------------------------------------------------
      protected void saveMessages(HttpServletRequest request,
        ActionMessages messages) {
        // Remove any messages attribute if none are required
        if ((messages == null) || messages.isEmpty()) {
            request.removeAttribute(Globals.MESSAGE_KEY);

            return;
        }

        // Save the messages we need
        request.setAttribute(Globals.MESSAGE_KEY, messages);
    }

说明:saveMessages有两个名称相同,但参数不同的方法。有一个是把ActionMessages保存在request中,有一个保存在session中。
分享到:
评论

相关推荐

    对分页进行了封装,PageUtil.java工具类

    `GroupAction.java`可能是Spring MVC中的Controller,负责接收HTTP请求,调用`PageUtil`处理分页查询,并将结果返回给前端。 `Page.java`看起来是一个自定义的Page对象,包含了分页数据的基本信息,如总记录数、...

    (HttpServlet封装类)Action.java

    通过JAVA反射技术对HttpServlet进行简单封装,类似于struts框架,页面请求过来的参数名只需要与Action&lt;T&gt; T这个Bean里的变量对应即可,getForm()就是获得页面传过来的参数[注:当前这个只能传T里的string和int/...

    飞信的java源码,完全反编译,解密版

    | ServiceAction.java | Setting.java | StringParser.java | Transform.java | User.java | WpendingPair.java | +---META-INF | MANIFEST.MF | \---res +---128 | i.png | +---176 | i.png | \---240 i....

    ActionServlet.java

    ActionServlet.java

    Java Data Structures and Algorithms In Action. Java数据结构和算法实战.zip

    大数据算法在数据分析中发挥着重要的作用,它可以提高分析工作的效率和准确性,为决策提供有力支持。具体来说,大数据算法可以分类、聚类、预测和关联规则分析等,从而发现数据之间的规律和关联关系,挖掘出潜在的...

    学生成绩管理系统(java+SQL Server)

    Execute_button_action.java 响应所有在界面上的按钮的事件 IndexFrame.java 系统打开时候的首页 MainFrame.java 管理系统的功能界面 Operte_db.java 实现对数据库的所有操作 S_information.java 学生信息...

    EarthForge 是一个用 Java 编写的基于块的 2D 生存游戏。它建立在 UtiliGame 引擎之上。

    EarthForge 是一个用 Java 编写的基于块的 2D 生存游戏。它建立在 UtiliGame 引擎之上。...src/com/earthforge/obj/Action.java src/com/earthforge/obj/Biome.java src/com/earthforge/obj/Block.java

    Apress.Pro.Ajax.and.Java.Frameworks.Jul.2006.HAPPY.NEW.YEAR.rar

    《Apress.Pro.Ajax.and.Java.Frameworks.Jul.2006.HAPPY.NEW.YEAR》这本书专注于探讨如何在Java环境中利用Ajax技术构建高效、交互性强的Web应用。Ajax(Asynchronous JavaScript and XML)是一种用于创建动态网页的...

    java-action.rar_action

    Java Action在IT领域,尤其是Java Web开发中是一个重要的概念,主要与MVC(Model-View-Controller)设计模式相关。MVC模式是用于构建应用程序的一种结构化方法,它将业务逻辑、数据处理和用户界面分离,使得代码更...

    Java简单模拟ATM机

    action CheckBalance.java LoginAction.java ModifyPsw.java TransferAccountsAction.java UpdateBalance.java domin CardInfo.java start Login.java UI ...

    java画板课程设计报告.doc

    - ImageAction.java:处理键盘输入。 - ImageFileChooser.java:扩展文件选择对话框。 - ImageFrame.java:负责界面显示和布局。 - ImageService.java:处理业务逻辑。 - Main.java:程序的主入口。 - MyImage.java...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    14.9.4 发布控制器类EditAction.java 14.9.5 内容控制器类ContentAction.java 14.9.6 浏览内容的控制器类IndexAction.java 14.10 编写Struts的配置文件struts-config.xml 14.11 编写Spring和Hibernate的配置文件...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    14.9.4 发布控制器类EditAction.java 14.9.5 内容控制器类ContentAction.java 14.9.6 浏览内容的控制器类IndexAction.java 14.10 编写Struts的配置文件struts-config.xml 14.11 编写Spring和Hibernate的配置文件...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    14.9.4 发布控制器类EditAction.java 14.9.5 内容控制器类ContentAction.java 14.9.6 浏览内容的控制器类IndexAction.java 14.10 编写Struts的配置文件struts-config.xml 14.11 编写Spring和Hibernate的配置文件...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    14.9.4 发布控制器类EditAction.java 14.9.5 内容控制器类ContentAction.java 14.9.6 浏览内容的控制器类IndexAction.java 14.10 编写Struts的配置文件struts-config.xml 14.11 编写Spring和Hibernate的配置文件...

    commons-beanutils-1.7.0

    java.lang.SecurityException: class "org.apache.commons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package at java.lang....

    Java 项目开发规范

    - Action类负责业务逻辑执行,建议命名格式为`有效名称+Action.java`。 - 示例:`UserAction.java`。 **4. Service接口类** - 接口及其实现类分别使用`**Service.java`和`**ServiceImpl.java`命名。 - 示例:`...

    Java简单模拟ATM机项目

    java语言编写的简单模拟ATM机功能案例,有美观的UI界面,和比较完善的功能模块,业务分层,编码格式规范。可供初学者参考。 另在db文件夹中附带两种数据库(mysql、sqlserver)表结构。 bin cn bank action ...

    精通struts.基于MVC的.java.web设计与开发.zip

    基于MVC的.java.web设计与开发.zip”包含了一份关于深入理解并应用Struts进行Web开发的详细教程——《精通struts.基于MVC的.java.web设计与开发.pdf》。以下是对该框架及其相关知识点的深入解析: 1. **MVC模式**:...

    JAVA编码规范培训

    - Java文件按照模块名Action.java、Form.java、Svc.java、Dao.java、Vo.java和PK.java命名,对应不同功能组件。 4. **排版规则**: - 方法排版:方法名与括号间无空格,局部变量声明和语句间保持空行。 - 语句...

Global site tag (gtag.js) - Google Analytics