DispatchAtion:

- org.apache.struts.actions.DispatchAction

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

直接给一个例子:

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

public ActionForward XXXmethod( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{ ... ... }
package examples;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*;
public class AccountAction extends DispatchAction {
public ActionForward login( ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 進行一些Login的邏輯
return mapping.findForward("success");
} public ActionForward logout( ActionMapping mapping, ActionForm form,
                  HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 進行一些Logout的邏輯
return mapping.findForward("success1");
}
}

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

    <global-forwards>
<forward name="logon" path="/logon.do"/>
<forward name="error" path="/error.do" redirect="false" contextRelative="true"/>
<forward name="main" path="/main.do" redirect="false"/>
<forward name="checkOut" path="/checkOut.do" />
<forward name="leftFrame" path="/leftFrame.do" redirect="false"/>
</global-forwards>
<action-mappings>
<action path="/logon" forward="/logon.jsp"/>
<action path="/logon-validate"
input="/logon.jsp"
name="LogonForm"
parameter="todo"
type="com.amerisia.ebills.studio.action.LogonAction"
validate="false">
</action>
<action path="/logout" type="com.amerisia.ebills.studio.action.LogoutAction"/>
<action path="/online" type="com.amerisia.ebills.studio.action.OnlineAction"/>
<action path="/UserOnlineAction"
       input="/showOnlineUser.jsp"
name="UserOnlineForm"
parameter="todo"
type="com.amerisia.ebills.studio.action.UserOnlineAction">
<forward name="showOnlineUser" path="/showOnlineUser.jsp"/>
</action>

DynaActionForm

- org.apache.struts.action.DynaActionForm

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

struts-config.xml中:

<form-beans>
<form-bean name="LogonForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>
<form-bean name="UserOnlineForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="userId" type="java.lang.String"/>
</form-bean>
</form-beans>
<form-beans>

如此可以取得它:

DynaActionForm dynaActionForm = (DynaActionForm) form;
String username = (String) dynaActionForm.get("username");
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. Entity Framework(Fluent API)

    一.概述 Fluent API 可以理解为一种从POCO到数据库的映射约定,包括字段长度,类型,主外键等等,在EF Code First进行开发时候经常用到. 1.主键 modelBuilder.En ...

  2. Cocos Creator 获取节点的方式

    1.通过find方式获取//获取节点 var node=cc.find("Canvas/logo"); //获取精灵组件 var sprite=node.getComponent( ...

  3. Nginx配置文件具体配置解释

    Nginx配置文件具体配置解释   #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错 ...

  4. c3p0:Connections could not be acquired from the underlying database!解决方案

    在利用ssh框架做网站的时候遇到了一个比较棘手的问题,一直连接不上数据库,问题描述如下: 各种百度然后说的最多的解决方案是: 1,驱动配置有误:2,数据库连接地址有误:3,密码或帐号有误: 4,数据库 ...

  5. struts2实现XML异步交互

    异步交互,在不用重新提交整个页面的情况下可以实现页面局部信息与服务器的交互.在编写异步交互时需要用到一个架包:dom4j,下载地址为:https://dom4j.github.io/ 下面通过例子说明 ...

  6. aop编程之前置通知

    aop( Aspect-Oriented Programming)前置通知原理案例讲解 编程步骤: 定义接口 编写对象(被代理的对象即目标对象) 编写通知(前置通知即目标方法调用前调用) 在beans ...

  7. Mysql 修改字段长度、修改列名、新增列、修改自增主键起始值

    alter table 表名 modify column 字段名 类型; 例如 数据库中user表 name字段是varchar(30) 可以用 ) ; --修改字段长度 )--修改表列名 ); -- ...

  8. OWASP top 10

    OWASP Top 10 A1: InjectionSolution+Validate User Input+Never concatenate queries and date+Parameteri ...

  9. RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试

    RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试 特别说明: 电源接反,电机驱动板接反将有可能烧毁芯片和电路,请再三确认后再进行通电. 如何使用: 1.需要用到的模块或器件: Arduin ...

  10. html5-字体css

    #div1{font-size: 50px;}#div2{font-size: 50%;}#div3{font-size: 300%}#div4{font-size: 3em;}#div5{font- ...