类实现DispatchAction  类似于ActionServlet
 
ActionServlet 来自于 org.apache.struts.action 包,它继承自 HttpServlet,作为 Struts 的 Ser
vlet 控制器,是 Struts 框架控制器的核心。
 
ActionForm对象
ActionForm 是 Struts 框架中的一个重要组成部分,它保存 request 参数。 ActionForm 从本
质上讲,就是一个 JavaBean,这些 Bean 有与 HTTP request 参数相对应的属性名称,控制器
根据 struts-config.xml 文件创建 ActionForm Bean 的实例。并根据配置, 把实例传给 Action 类,
ActionForm Bean 的实例也被称为表单。 ActionForm Bean,必须继承 org.apache.struts.action.
ActionForm 类。 当 ActionServlet 调用 Action 类时, 它创建生成相应的 ActionForm Bean 实例,
然后把它传递个 Action 类。 ActionForm Bean 中会包含许多 get/set 方法, set 方法的调用是由
Struts 框架自动完成的,请求开始处理时, Struts 框架从 request 对象中提取 url 参数,并自动
使用这些参数为 FormBean 中对应的属性赋值。
 
Struts框架利用ActionForm对象来临时存放视图页面中的表单数据。例如,一个登录页面会有一个用户名输入框和一个密码输入框,
以及用来提交 登录请求的按扭。当用户提交登录请求后,Struts将 用户名和密码两个输入域的数据自动填充到相应的ActionForm对象中,
然后控制层可以从该ActionForm对象中读取用户输入的表单数据,也可 以把来自模型层的数据存放到ActionForm中,然后返回给视图显示。
 
Action 类
必须继承 Struts 提供的类 org.apache.action.Action.Actoin 类的目标
是处理一个请求, Struts 框架为每一个 Action 类只创建一个实例
ActionServlet 调用 Action 类,并调用 exectue 方法,
Action 类的 execute 方法声明如下:
public ActionForward execute(ActionMapping mapping,
ActionForm actionForm,
ServletRequest request,
ServletResponse response
)
 
public ActionForward execute(ActionMapping mapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response
)
 
ActionMapping对象
对应struts-config.xml中的<action-mappings>中的<action><forward>的元素
 
Struts1创建
创建Web Project类型
选择项目,加入Struts类库
 
 
实现Struts1的方式
实现ActionForm、Action。
配置好Struts-confing.xml。举例说明
 
<struts-config>
    <form-beans>
        <form-bean name="LoginActionForm" type="com.mybbs.actionform.LoginActionform" />
    </form-beans>
 
    <action-mappings>
        <action input="/jsp/login.jsp" attribute="LoginActionForm"
            name="LoginActionForm" path="/LoginAction" scope="request"
            type="com.mybbs.action.LoginAction">
            <forward name="self" path="/jsp/login.jsp"></forward>
            <forward name="success" path="/jsp/success.jsp"></forward>
            <forward name="error" path="/jsp/error.jsp"></forward>
        </action>
    </action-mappings>
    <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
 
 先声明<form-beans>,input指明那个jsp上输入组件填充到ActionForm,attribute和name一致,path指明那个Action接收ActionForm,
type指明Action的具体路径,forward指明在Action中根据那个关键字跳转。
 
Web 应用中 Struts 所处 MVC 的位置
 
Struts 通过配置文件将上面这些组件和对象关联起来一起工作。在 Web.xml 中,应该将 S
truts 提供的 ActionServlet 配置成一个 Servlet(config属性指定),接着指定 Struts 自身的配置文件 struts-config.x
ml,这个文件在 Servlet 中被调用解析。
 
struts-config.xml
作为 Struts 框架的核心描述符, struts-config.xml 可以说是“一切尽在掌握”。
它不但描述了 MVC 模型,定义所有视图层和控制层之间的接口( ActionForm),与控制层和模型层的
接口( Action)进行结合,而且可以定义一些附加组件,如国际化信息的资源配置( Resource
s)文件,标签库信息以及验证框架等。
 
控制器组件DispatchAction
通常,在一个 Action 中只能完成一种业务操作,如果希望在同一个 Action 类中完成一组
相关的业务操作,可以使用 DispatchAction 类。比如对一个用户对象来说,存在增加、删除、
修改的操作,一种设计方案是为每种业务操作创建独立的 Action 类,如 addUserAction, del
UserAction, updateUserAction。尽管这种设计方案是可行的,但是这三个 Action 在执行各自
的任务中,可能会执行一些相同的操作,比如 addUserAction 和 updateUserAction 都要进行相
同的数据验证。
为了减少重复编程,使应用更加便于维护,可以由同一个 Action 类来完成一组相关的业
务操作, DispatchAction 就提供了这种功能。
 
ForwardAction 类
 
在 Web 组件之间通过 ForwardAction 类来进行请求
转发,可以充分利用 Struts 控制器的预处理请求功能。此外,也可以通过<action>元素的 forward
属性来实现请求转发。
例子:<action path=”/login” forward=”/login.jsp” scope=”request” />
 
 
数据库相关的接口通过
返回一个通过重用数据库连接来代替重新创建一个数据库连接。
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Struts1框架学习笔记的更多相关文章

  1. phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构   pha ...

  2. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  3. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  4. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  5. JavaSE中Map框架学习笔记

    前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...

  6. JavaSE中线程与并行API框架学习笔记1——线程是什么?

    前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...

  7. JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

    前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...

  8. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

  9. TensorFlow机器学习框架-学习笔记-001

    # TensorFlow机器学习框架-学习笔记-001 ### 测试TensorFlow环境是否安装完成-----------------------------```import tensorflo ...

随机推荐

  1. 代码:jquery自定义插件 demo

    jquery自定义插件 demo 2016-1-13 只是一个简易的示例 <script type="text/javascript" src="http://cd ...

  2. 《算法》第四章部分程序 part 16

    ▶ 书中第四章部分程序,包括在加上自己补充的代码,Dijkstra 算法求有向 / 无向图最短路径,以及所有顶点对之间的最短路径 ● Dijkstra 算法求有向图最短路径 package packa ...

  3. Python基础2 列表 字典 集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  4. redistemplate优雅地操作redis redis 工具类

    参考:https://www.cnblogs.com/superfj/p/9232482.html redis 工具类 package com.service; import org.springfr ...

  5. tensorflow实战系列(一)

    最近开始整理一下tensorflow,准备出一个tensorflow实战系列,以飨读者. 学习一个深度学习框架,一般遵循这样的思路:数据如何读取,如如何从图片和标签数据中读出成tensorflow可以 ...

  6. react-native android 和ios 集成 jpush-react-native 激光推送

    安装 $ npm install jpush-react-native --save # jpush-react-native 版本以后需要同时安装 jcore-react-native $ npm ...

  7. Win7查看开关机记录

    通过系统日志可以查看,这里记得的日志很多,需要筛选一下,来个图片看的清楚: 事件ID的12,13就代表开关机,具体信息会在窗口下方显示.

  8. sonar自定义规则

    Sonar并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方 ...

  9. air报错 Error: Error #3000: Illegal path name

    配置增加: <supportedProfiles>extendedDesktop desktop</supportedProfiles> fb: flash:

  10. js中实现cookie的增删改查(document.cookie的使用详情)

    一.设置cookie的值 1.每个cookie都是一个名称/值对,名称/值对用等号连接,并将该名称/值对赋值给document.cookie即可.如:document.cookie="id= ...