第二 控制层框架与表示层框架.ppt_第1页
第二 控制层框架与表示层框架.ppt_第2页
第二 控制层框架与表示层框架.ppt_第3页
第二 控制层框架与表示层框架.ppt_第4页
第二 控制层框架与表示层框架.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二讲控制层框架与表示层框架 控制层框架 struts2 struts2是一个MVCWeb框架优势灵活方便Inteceptor拦截器机制OGNL表达式语言多视图表示 Struts2体系结构 Struts2的基本流程如下 Web浏览器请求一个资源 过滤器Dispatcher查找请求 确定适当的Action 拦截器自动对请求应用通用功能 如验证和文件上传等操作 Action的execute方法通常用来存储和 或 重新获得信息 通过数据库 结果被返回到浏览器 可能是HTML 图片 PDF或其他 其实 Struts2框架的应用着重在控制上 简单的流程是 页面 控制器 页面 最重要的是控制器的取数据与处理后传数据的问题 Struts2的体系结构还可以参考图1 更直观地展现出其流程 图1Struts2体系结构 Struts2简单示例 简单Struts2示例开发 在eclipse中创建web工程 添加struts2 2相关jar包 简单Struts2示例开发 在web xml中添加FilterDispatcher过滤器在webapp目录下创建index html文件 简单Struts2示例开发 编写org action StrutsAction类 POJO类 简单Struts2示例开发 在src根目录下创建struts xml文件 并添加响应的内容 在webapp目录下创建welcome jsp文件 简单Struts2示例开发 项目发布运行 Struts2的工作流程示意图 Controller FilterDispatcher interceptors Model StrutsAction View welcome jsp struts xml name 张三 Struts2工作流程及各种文件详解 1 Struts2中各种文件详解 1 web xml文件后面的webapp标签中配置了下面这样一段 struts2org apache struts2 dispatcher FilterDispatcherstruts2 可以看出 里面配置了一个过滤器 那么就先来介绍过滤器的使用 Filter过滤器是Java项目开发中的一种常用技术 它是用户请求和处理程序之间的一层处理程序 它可以对用户请求和处理程序响应的内容进行处理 通常用于权限控制 编码转换等场合 Struts2工作流程及各种文件详解 2 struts xml文件struts xml文件通常放在Web应用程序的WEB INF classes目录下 该目录下的struts xml将被Struts2框架自动加载 struts xml文件是一个XML文件 文件前面是XML的头文件 然后是标签 位于Struts2配置的最外层 其他标签都是包含在它里面的 3 package元素与Java中的包不同的是 Struts2中的包可以扩展另外的包 从而 继承 原有包的所有定义 并可以添加自己包的特有配置 以及修改原有包的部分配置 从这一点上看 Struts2中的包更像Java中的类 package有以下几个常用属性 name 该属性是必选的 指定包的名字 这个名字将作为引用该包的键 extends 该属性是可选的 允许一个包继承一个或多个先前定义的包 abstract 该属性是可选的 将其设置为true 可以把一个包定义为抽象的 Struts2工作流程及各种文件详解 namespace 该属性是可选的 将保存的action配置为不同的名称空间 看下面这个例子 foo jsp bar jsp moo jsp bar jsp Struts2工作流程及各种文件详解 4 Action元素当一个请求匹配到某个Action名字时 框架就使用这个映射来确定如何处理请求 welcome jsp hello jsp如果一个请求要调用Action类中的其他方法 就需要在Action配置中加以配置 例如 如果在org action StrutsAction中有另外一个方法为 publicStringfind throwsException returnSUCCESS 那么如果想要调用这个方法 就必须在Action中配置method属性 其配置方法为 welcome jsp hello jsp Struts2工作流程及各种文件详解 5 result元素一个result代表一个可能的输出 当Action类中的方法执行完成时 返回一个字符串类型的结果代码 框架根据这个结果代码选择对应的result 向用户输出 参数值param中的name属性有两个值 location 指定逻辑视图 parse 是否允许在实际视图名中使用OGNL表达式 参数默认为true result中的name属性有如下值 success 表示请求处理成功 该值也是默认值 error 表示请求处理失败 none 表示请求处理完成后不跳转到任何页面 input 表示输入时如果验证失败应该跳转到什么地方 关于验证后面会介绍 login 表示登录失败后跳转的目标 Struts2工作流程及各种文件详解 type 非默认类型 属性支持的结果类型有以下几种 chain 用来处理Action链 chart 用来整合JFreeChart的结果类型 dispatcher 用来转向页面 通常处理JSP 该类型也为默认类型 freemarker 处理FreeMarker模板 httpheader 控制特殊HTTP行为的结果类型 jasper 用于JasperReports整合的结果类型 jsf JSF整合的结果类型 redirect 重定向到一个URL redirect action 重定向到一个Action stream 向浏览器发送InputStream对象 通常用来处理文件下载 还可用于返回AJAX数据 tiles 与Tiles整合的结果类型 velocity 处理Velocity模板 xslt 处理XML XLST模板 plaintext 显示原始文件内容 如文件源代码 Struts2工作流程及各种文件详解 redirect action类型用于当一个Action处理结束后 直接将请求重定向到另一个Action 如下列配置 welcome jsp hello jspstruts Struts2工作流程及各种文件详解 6 ActionSupport类ActionSupport类为Action提供了一些默认实现 主要包括预定义常量 从资源文件中读取文本资源 接收验证错误信息和验证的默认实现 下面是ActionSupport类所实现的接口 publicclassActionSupportimplementsAction Validateable ValidationAware TextProvider LocaleProvider Serializable Action接口同样位于com opensymphony xwork2包 定义了一些常量和一个execute 方法 publicinterfaceAction publicstaticfinalStringSUCCESS success publicstaticfinalStringNONE none publicstaticfinalStringERROR error publicstaticfinalStringINPUT input publicstaticfinalStringLOGIN login publicStringexecute throwsException Struts2工作流程及各种文件详解 如何StrutsAction继承了ActionSupport类 在execute的返回值中 其代码可以改为 publicStringexecute throwsException if name equals HelloWorld Maprequest Map ActionContext getContext get request request put name getName returnSUCCESS else returnERROR 注册发生时 有两个表单的用户登录 Struts2的拦截器 ModelDriven与preparable Struts2文件上传 表现层框架 FreeMarker 页面资源层HTMLCSSJavaScript页面模板层FreeMarker Structure结构HTML Presentation表现CSS Behavior行为JavaScript FreeMarker FreeMarker是一个模板引擎优势简单易用提供了一整套内建机制来扩展各种数据类型在页面上的显示格式提供强大的Macro功能 提高显示逻辑可重用性报错时可以准确定位到行和列不需要预编译 显示速度快支持Taglib内嵌对XML的支持 FreeMarkerVSJSP FreeMarker简单易用FreeMarker提供了一套非常简单 而且可以快速上手的模版语言 不论学习还是使用 都比掌握JSPTag要容易和快速作为View来说 FreeMarker功能要强大很多FreeMarker提供了一整套built in来扩展各种数据类型的显示格式 而JSP没有此功能FreeMarker提供了强大的自定义macro功能FreeMarker的macro可以让你自定义FreeMarker标记 提高页面可重用性 而JSP不具备这样的方面功能FreeMarker报错可以准确定位到行和列而JSP只有在特定的AppServer Resin 下面才支持 大部分AppServer下面 当J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论