struts2——开发入门

概述

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
工作流程:
一:客户端提交一个HttpServletRequest请求,(.action或JSP页面)
二:请求被提交到一系列的Filter过滤器,如ActionContextCleanUp和FileterDispather等。
三:FilterDispatcher是Struts2的控制核心,它通常是过滤器链中的最后一个过滤器。
四:请求发到FilterDispathcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个Request(一般根据URL后缀是否为.action来判断)
五:如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActionProxy,由其进行处理。
六:ActionProxy通过ConfigurationManager(它会访问Struts.xml询问创建的配置文件,找到需要调用的Action类)
七:ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action(在调用之后会根据配置文件加载相关的所有Interceptor拦截器)
八:Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器
九:最后ActionInvocation负责根据struts.xml中配置的result,决定进行下一步输出

一个简单的程序示例

1、配置环境
2、创建action方法
这里写图片描述
3、将action方法部署在struts.xml中
这里写图片描述
4、在jsp页面调用方法
这里写图片描述
5、配置tomcat服务器并在浏览器中运行

sturts开发的核心——动作类Action

属性:
name:可以自定义
class:动作类的包
method:需要执行的动作类方法
编写动作类的三种方式:
1、动作类本身就是一个POJO(Plain Ordinary Java Object),可以不用继承或实现任何类或接口,如上述的例子。
2、实现com.opensymphony.xwork2.Action接口,此接口中又一个execute方法,再struts.xml中配置动作类时,不用指明method,程序会自动执行execute方法中的内容。
3、继承ActionSupport类,与Action接口不同之处在于,这个类有一个validate()方法,重写这个方法可在动作方法execute()执行前进行数据校验等操作。它还有一个getText()方法,可通过此方法实现国际化操作。
action中的result元素:
属性:
name:视图名称,对应动作方法返回值
type:指定结果类型,控制结果视图
常用的结果视图类型:
none:无动作
dispatch:默认,请求转发指定页面
redirect:重定向
chain:请求转发到另一个动作
redirectAction:重定向到另一个动作
stream:文件下载与上传
plainText:以纯文本的形式展现内容
继承ActionSupport类及result使用案例
1、创建action并继承ActionSupport,重写execute方法设置返回值
这里写图片描述
2、在struts.xml中配置action,并用result接收返回值
这里写图片描述
3、在jsp页面进行action调用
这里写图片描述

Struts2三种数据封装方式 (数据传递)

第一种:在动作类action中定义对象,并直接在初始时赋值。
第二种:动作类和模型分开:
1、创建模型对象,添加需要的属性并实现set/get方法
这里写图片描述
2、创建action,在action中取得模型对象
这里写图片描述
3、在struts.xml中配置action
这里写图片描述
4、在jsp页面调用action并通过text框来取值,这里的obj是在action中实例化模型对象的名称
这里写图片描述
第三种:模型封装,action实现ModelDriven接口并重写其中的getModel()方法
1、创建目标类并实现set/get
这里写图片描述
2、创建action继承ActionSupport类,实现ModelDriven接口,并实例化目标类对象
这里写图片描述
3、配置struts.xml
这里写图片描述
4、jsp页面调用
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值