Struts2开发框架介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts值栈
一个request有一个独立的值栈,使用<s:debug></s:debug>标 签可以查看
OGNL
ognl – Object-Graph Navigation Language(对象图导航语 言), OGNL可以让我们用非常简单的表达式访问对象层, Struts2中使用OGNL来做界面数据绑定,即把界面元素(例 如一个textfield)和对象层某个类的某个属性绑定在一起,修 textfield) 改和显示自动同步。 根对象ValueStack的实现类为OgnlValueStack 配合struts标签使用,例如:<s:property value="name"/> <s:property value="user.username"/> <s:property value=“username.length()"/> <s:property value="users[1]"/>
Action参数传递
属性传值 action!method?username=aaa&password=bbb action!method?user.username=aaa 模型驱动传值 Action implements ModelDriven<user>{ public user getModel(){ return user; } } action!method?username=aaa
OGNL
Ognl示例程序
Struts2标签
通用标签 property、set、bean、debug 控制标签 if elseif else iterator:collections,map,enumeration,iterator, array UI标签:theme Ajax标签
Struts2标签
Struts2处理流程
Struts 2框架的大致处理流程如下 1、浏览器发送请求,例如请求/mypage.action等。 2、核心控制器FilterDispatcher根据请求决定调用合适的Action。 3、WebWork的拦截器链自动对请求应用通用功能,例如workflow、 validation或文件上传等功能。 4、回调Action的execute方法,该execute方法先获取用户请求参数,然后执 行某种数据库操作,既可以是将数据保存到数据库,也可以从数据库中 检索信息。实际上,因为Action只是一个控制器,它会调用业务逻辑组 件来处理用户的请求。 5、Action的execute方法处理结果信息将被输出到浏览器中,可以是HTML 页面、图像,也可以是PDF文档或者其他文档。此时支持的视图技术非 常多,既支持JSP,也支持Velocity、FreeMarker等模板技术。
tags示例程序
Iterceptor拦截器
结束
Action方法调用
DMI动态方法调用 action!method 使用通配符 <action name="hello-*" class="com.ccb.cost.struts2.helloAddAction" method = "{1}"> 例如:hello-Add调用hellAddAction.Add方法
struts.xml
<struts> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <include file="struts-hello.xml" /> <package name="default" namespace="/" extends="strutsdefault"> <global-results> <result name="exception">/exception.jsp</result> </global-results> <action name="hello"> <result>/hello.jsp</result> </action> </package> </struts>
Struts2处理时序图
Action
一个拥有方法public string excute() 的类 一个实现了Action接口的类 一个继承了ActionSupport的类
Biblioteka Baidu Action
Struts.xml中action配置
1、没有对应的action类 <action name="hello"> <result>/hello.jsp</result> </action> 2、有指定的action类,不明确指定调用的method <action name="hello2" class="com.ccb.cost.struts2.helloAction"> <result name="success">/ >/hello2.jsp</result> </action> 3、有指定的action类,并且使用OGNL表达式指定调用的method <action name="hello-*" class="com.ccb.cost.struts2.helloAddAction" method = "{1}"> <result name="success">/hello_{1}_sucess.jsp</result> <result name="error">/hello_{1}_error.jsp</result> </action>
Struts基本框架
MVC特点
1、多个视图可以对应一个模型。按MVC设计模式,一个模型对应多个视图, 可以减少代码的复制及代码的维护量,一旦模型发生改变,也易于维护。 2、 模型返回的数据与显示逻辑分离。模型数据可以应用任何的显示技术, 例如,使用JSP页面、Velocity模板或者直接产生Excel文档等。 3、应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性。 4、控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起, 完成不同的请求。因此,控制层可以说是包含了用户请求权限的概念。 5、 MVC更符合软件工程化管理的精神。不同的层各司其职,每一层的组件 具有相同的特征,有利于通过工程化和工具化产生管理程序代码。
Struts2开发框架介绍
内容
Struts2框架 Struts2框架web应用示例 Action OGNL Struts2标签 Iterceptor拦截器
Struts2框架
Struts 2的起源和背景 的起源和背景 Struts 2以WebWork优秀的设计思想为核 心,吸收了Struts 1的部分优点,建立了 一个兼容WebWork和Struts 1的MVC框架, Struts 2的目标是希望可以让原来使用 Struts 1、WebWork的开发人员,都可以 平稳过渡到使用Struts 2框架。
Struts2 生命周期
每个Request都new一个 action,而不是使用单例 (不同于struts1)
Struts2框架web应用示例
一个典型的Struts2框架web应用示例 两个重要的配置文件 web.xml struts.xml
Web.xml
<filter> <filter-name>struts2</filter-name> <filterclass>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndE xecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
相关文档
最新文档