DispatchAtion:

- org.apache.struts.actions.DispatchAction

这个类是个抽象类,但实现父类Action的execute方法,在项目中重写这个类可以专注于执行方法面不必自己实现execute方法

直接给一个例子:

1.继承DispatchAtion类,其包括一些方法,如checkUser()、logon()、logout()等,这些方法有一个共同的模板:

  1. public ActionForward XXXmethod( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
  2. { ... ... }
  1. package examples;
  2. import javax.servlet.http.*;
  3. import org.apache.struts.action.*;
  4. import org.apache.struts.actions.*;
  5. public class AccountAction extends DispatchAction {
  6. public ActionForward login( ActionMapping mapping, ActionForm form,
  7. HttpServletRequest request, HttpServletResponse response)
    throws Exception {
  8. // 進行一些Login的邏輯
  9. return mapping.findForward("success");
  10. }
  11.  
  12. public ActionForward logout( ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response)
  13. throws Exception {
  14. // 進行一些Logout的邏輯
  15. return mapping.findForward("success1");
  16. }
  17. }

2.在struts-config.xml如下配置:

  1. <global-forwards>
  2. <forward name="logon" path="/logon.do"/>
  3. <forward name="error" path="/error.do" redirect="false" contextRelative="true"/>
  4. <forward name="main" path="/main.do" redirect="false"/>
  5. <forward name="checkOut" path="/checkOut.do" />
  6. <forward name="leftFrame" path="/leftFrame.do" redirect="false"/>
  7. </global-forwards>
  8. <action-mappings>
  9. <action path="/logon" forward="/logon.jsp"/>
  10. <action path="/logon-validate"
  11. input="/logon.jsp"
  12. name="LogonForm"
  13. parameter="todo"
  14. type="com.amerisia.ebills.studio.action.LogonAction"
  15. validate="false">
    </action>
  16. <action path="/logout" type="com.amerisia.ebills.studio.action.LogoutAction"/>
  17. <action path="/online" type="com.amerisia.ebills.studio.action.OnlineAction"/>
  18. <action path="/UserOnlineAction"
  19.        input="/showOnlineUser.jsp"
  20. name="UserOnlineForm"
  21. parameter="todo"
  22. type="com.amerisia.ebills.studio.action.UserOnlineAction">
  23. <forward name="showOnlineUser" path="/showOnlineUser.jsp"/>
  24. </action>

DynaActionForm

- org.apache.struts.action.DynaActionForm

写ActionForm时要写上它的setter/getter方法,简单的ActionForm可以用这个来代替,它其实是ActionForm的一个子类,用Map方式存储,配置方法如下:

struts-config.xml中:

  1. <form-beans>
  2. <form-bean name="LogonForm" type="org.apache.struts.action.DynaActionForm">
  3. <form-property name="username" type="java.lang.String"/>
  4. <form-property name="password" type="java.lang.String"/>
  5. </form-bean>
  6. <form-bean name="UserOnlineForm" type="org.apache.struts.action.DynaActionForm">
  7. <form-property name="userId" type="java.lang.String"/>
  8. </form-bean>
  9. </form-beans>
  10. <form-beans>

如此可以取得它:

  1. DynaActionForm dynaActionForm = (DynaActionForm) form;
  2. String username = (String) dynaActionForm.get("username");
  3. String password = (String) dynaActionForm.get("password");

这个(DynaActionForm)form是方法传入来的参数,这个方法的参数列表是固定的,是DispatchAction的执行方法。

[J2EE]struts+ejb笔记的更多相关文章

  1. J2EE和EJB有什么关系?

    其实j2EE就是java的企业版,与javaSE(标准版)有是有区别的,所以运行环境会有差异(简单点可以说,这是两组不同的接口),我们一般所熟悉的tomcat仅仅只实现了j2ee的一小部分规范,它只是 ...

  2. J2EE与EJB

    问题及答案来源自<Java程序员面试笔试宝典>第五章 Java Web 5.2 J2EE与EJB 1.什么是J2EE? J2EE是Java平台企业版的简称,是用来开发和部署企业级应用的一个 ...

  3. EJB 笔记

    EJB(Enterprise JavaBean)是J2EE服务器端的组件模型,EJB包括会话Bean(Session Bean).实体Bean(Entity Bean).消息驱动Bean(Messag ...

  4. struts学习笔记

    ------struts in action 读书笔记 1. ActionServlet:Struts 的ActionServlet控制导航流.当ActionServlet从容器接到一个请求,它使用U ...

  5. J2EE之EJB

     EJB是sun的JavaEEserver端组件模型,最大的用处是部署分布式应用程序.EJB把使用java开发的server组件的部署和开发进行标准化. 凭借java跨平台的优势.用EJB技术部署的分 ...

  6. Struts面试笔记

    Struts2面试题1.struts2工作流程Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器 ...

  7. Struts系列笔记(6)---action接收请求参数

    action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...

  8. 23种设计模式+J2EE设计模式学习笔记-初识设计模式

    设计模式简介: 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结.(个人理解:设计模式是不关乎业务,逻辑实现,针对普遍问题的一种解决方案). 设计模式的类型: 传统23种设 ...

  9. struts学习笔记(四)

    一. 文件的上传: 1). 表单需要注意的 3 点 2). Struts2 的文件上传实际上使用的是 Commons FileUpload 组件, 所以需要导入 commons-fileupload- ...

随机推荐

  1. Ubuntu下安装eclipse遇到的问题

    今天在Ubuntu中安装eclipse时遇到如下问题: 解决方法: 打开eclipse安装目录下eclipse.ini文件 在文件最开头(注:一定是最开头)加上如下语句(-startup前面两行),第 ...

  2. max_execution_time with sleep

    Under Linux, sleeping time is ignored, but under Windows, it counts as execution time. Note The set_ ...

  3. opencv 傅里叶使用

    #include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;int ...

  4. 01JAVA语言基础课后作业

    1.问题 一个Java类文件中真的只能有一个公有类吗? 请使用Eclipse或javac检测一下以下代码,有错吗? 回答  真的只能有一个公有类 一个Java源文件中最多只能有一个public类,当有 ...

  5. c#中的模态对话框和非模态对话框

    模态对话框弹出窗口阻止调用窗口的所有消息响应.只有在弹出窗口结束后调用窗口才能继续.在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态对话框可以在弹出窗口和调用 ...

  6. Js闭包学习笔记

    好多内容摘抄了大神的博客内容,只为分享记录.如有冒犯,请见谅 参考文章 http://www.cnblogs.com/libin-1/p/5962269.html http://www.cnblogs ...

  7. html5-figure和figcaption元素

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. 【爬虫】biqukan抓取2.0版

    #!python3.7 import requests,sys,time,logging,random from lxml import etree logging.basicConfig(level ...

  9. maven编译不通过:软件包com.sun.org.apache.xml.internal.security.utils.Base64 不存在

     问题:代码中使用了sun公司的第三方私有库,导致编译不通过 maven打包异常:软件包com.sun.org.apache.xml.internal.security.utils.Base64 不存 ...

  10. 安卓apk的编译与反编译

    原文:https://blog.csdn.net/baidu_33870664/article/details/80186945 android基于java的,而java反编译工具很强悍,所以对正常a ...