《struts框架详细介绍》由会员分享,可在线阅读,更多相关《struts框架详细介绍(43页珍藏版)》请在金锄头文库上搜索。
1、struts框架详细介绍struts框架的组成部分nstruts-config.xml Struts配置文件nActionServlet 控制器nAction Class 包含事务逻辑nActionForm 显示模块数据struts框架的组成部分nActionMapping 帮助控制器将请求映射到操作nActionForward 用来指示操作转移的对象nActionError用来存储和回收错误nStruts标记库struts框架的优势n良好的架构和设计n可重用,模块化,扩展性好nOpen sourcestruts-config.xmlnStruts-config.xml集中了所有页面的导航定义
2、。对于大型的WEB项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或升级都是大有裨益的。掌握Struts-config.xml是掌握Struts的关键所在。 struts-config.xml(FormBean部分)nn n n n struts-config.xml(全局转发部分)nn n n n struts-config.xml(action部分)nn n n n nActionServletnActionServlet 是struts框架 MVC 实现的 controller 部分,它是这一框架的核心。nActionServlet 创建并使用 Action
3、、ActionForm 和 ActionForward。ActionServlet的基本功能n截获用户的Http请求n把这个请求映射到相应的Action类。n创建一个ActionForm bean实例,将form请求放入formbean的实例中ActionServlet的基本功能n调用Action实例的perform()方法n将ActioForm bean,Action Mapping对象,request和response对象传给Action的perform()方法nperform返回一个ActionForword对象,根据方法执行情况转到相应的jsp页面.Action ClassesnAct
4、ion 类是业务逻辑的一个包装。Action 类的用途是将 HttpServletRequest 转换为业务逻辑。ActionFormnActionForm 维护 Web 应用程序的会话状态。nActionForm 是一个抽象类,必须为每个输入表单模型创建该类的子类。ActionForm的使用n假定有一个由 HTML 表单设置的 TestActionForm。Struts 框架将执行以下操作:n检查 TestActionForm是否存在;如果不存在,它将创建该类的一个实例。nStruts 将使用 HttpServletRequest 中相应的域设置 TestActionForm的状态。Acti
5、onForm的使用nStruts 框架在将 TestActionForm传递给TestAction 之前将更新它的状态。 nstruts-config.xml 文件控制 HTML 表单请求与 ActionForm 之间的映射关系。n可将多个请求映射到 TestActionForm 。Struts标记库nStruts框架包括自定义标签库,它可以用在很多方面。尽管这些库并不要求用框架,但使用它们会有助于程序的开发。Struts标记库nstruts-bean taglib:包含在访问bean和bean属性时使用的tag,也包含一些消息显示的tag。nstruts-html taglib:包含用来生成
6、动态HTML用户界面和窗体的tag。nstruts-logic taglib :包含的tag用来管理根据条件生成输出文本,和其它一些用来控制的信息。nstruts-template taglib包含的tag用来定义模板机制。Bean Taglibn用于定义新bean、访问bean及其属性的标记n在struts-bean.tld中定义了它的标记库描述器Bean Taglib主要功能n创建和复制bean的标记n脚本变量定义标记nbean翻译标记n消息国际化标记Bean复制标记 ()n可定义新bean,可复制现有bean,还可从现有bean复制属性。n定义新字符串常数n将现有的bean复制到新定义的
7、bean对象n复制现有bean的属性来创建新的bean标记属性:nId 新定义的bean脚本变量名称,必须设置nType定义引入脚本变量的类nValue为id属性定义的脚本变量分配一个新的对象标记属性:nName目标bean的名称。若value属性没有设置,这个属性就必须设置nproperty Name属性定义的bean的属性名称,用来定义新的beannScope源bean的作用域。若没有设置,搜索范围是从页作用域到应用程序作用域ntoScope 目标bean的作用域。若没有设置,默认值是页作用域举例n定义一个bean:nn源bean在页作用域中被拷贝到请求作用域中的另一个bean:n脚本变量
8、的标记n从多种资源中定义和生成脚本变量,这些资源包括cookie,请求参数,HTTP标头等等。脚本变量的标记属性:nId 脚本变量和要定义的页作用域 属性的名称nName cookie/标头/参数的名称nValue 如果没有匹配的cookie或数值,就返回这个属性指定的默认值脚本变量的标记属性:nmultiple如果这个属性设置了任意一个数值,所有匹配的cookie都会被积累并存储到一个Cookie(一个数组)类型的bean里 若无设置,指定cookie的第一个值将作为Cookie类型的值举例nn脚本变量名称是myCookie,用来创建这个属性的cookie的名称是userName。nn脚本变
9、量名称是myHeader,请求标头的名称是Accept-Language.举例nn脚本变量名称是myPatameter,它保存的请求参数的名称也是myParameter逻辑标记nStruts逻辑标签库包含的标记能够有条件地产生输出文本n在对象集合中循环从而重复地产生输出文本,以及应用程序流程控制n它也提供了一组在JSP页中处理流程控制的标记n逻辑标记封装在文件名为struts-logic.tld的标记包中逻辑标记库的功能n条件逻辑n重复n转发/重定向响应条件逻辑标记n第一类可以比较下列实体与一个常数的大小n第二类在计算标记体之前判断特定的项目是否存在n第三类根据模板匹配的结果检查标记体的内容第
10、一类条件逻辑标记n如果常数与被定义的实体相等,返回truen 如果常数与被定义的实体不相等,返回truen如果常数大于等于被定义的实体,返回true第一类条件逻辑标记n 如果常数小于等于被定义的实体,返回truen 如果常数小于被定义的实体,返回truen如果常数大于被定义的实体,返回true举例n判断名为name的请求参数的值是否是SomeName。nn The entered name is SomeNamen举例n判断在页的作用域中是否有一个名为bean的bean,它有一个prop属性,这个属性的值是否大于7。n如果这个属性能够转化为数值,就进行数值比较,否则就进行字符串比较。nnThe
11、 value of bean.Prop is greater than 7n第二类条件逻辑标记nn第三类条件逻辑标记nn重复标记n它能够根据特定集合中元素的数目对标记体的内容进行重复的检查n集合的类型n数组举例nStrlst是一个包含字符串的List,现在要将他内部的字符串全都显示在浏览器里nnn转发标记n标记能够将响应转发给重定向到特定的全局ActionForward上nActionForward的类型决定了是使用PageContext转发响应,还是使用sendRedirect将响应进行重定向n此标记只有一个name属性,用来指定全局ActionForward的名称,例如:n重定向标记n标记是一个能够执行HTTP重定向的强大工具。n根据指定的不同属性,它能够通过不同的方式实现重定向。n它还允许开发人员指定重定向URL的查询参数。HTML标记nStruts HTML标记可以大致地分为以下几个功能:n显示表单元素和输入控件n显示错误信息n显示其他HTML元素模板标记nStruts模板标记可以大致地分为以下几个功能:n插入标记n放置标记n获得标记