Struts2框架

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1Strus2框架主讲:黄玲2什么叫框架►框架概念フレームワークframework►框架的优点重用性提高质量和效率3Struts2框架►一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是其中之一,Struts是流行的基于J2EE的架构方案。B/S多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现良好的可维护性。4Struts2简介►Struts2其实是从WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统►其实Struts2稳定性、性能等各方面都有很好的保证。而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架。5MVC►V:view,视图处理完的结果,动态定义对应的视图►M:model,模型(user)Action里保存的东西,他就是来处理我们的请求►C:控制器(action)谁来控制我用哪个模型来处理,谁来控制我要到哪个视图去请求的产生,请求的处理,请求的结果全部给分开了。6第一个project►先通过一个project来认识一下struts2►准备环境安装软件:myeclipse8tomcat6jdk1.67第一个project►1.建立工程file-new-project-MyEclipse-JavaEnterpriseProjects-WebProjectNextProjectName:001JavaEE5.0finish►2.设置Window-preferences-MyEclipse-server-Tomcat6.x-[]-enableWindow-preferences-Java-InstalledJREs-Add-StandardVM8第一个project►3.确认JRESystemLibrary来自JKD。。。JavaEE5Libraries是Myeclipse自带的,不用管►4.添加struts2用lib工程名右键-Myeclipse-Addstrutscapabilities-struts2.1-finish确认src下有struts2.xmlweb.xls里有filter的配置9第一个project►web.xml位置:WEB-INFfilterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mapping/web-app10第一个project►StrutsPrepareAndExecuteFilter作用:在我们的业务处理的前后做了很多很多的事。比如帮我们从画面输入框取值,放到action里等11第一个project►Struts.xml位置:srcstrutspackagename=struts2namespace=/extends=“struts-default”actionname=helloresult/hello.jsp/result/action/package/struts12第一个project►Index.jsp改名为hello.jsp(注意Jsp文件里使用中文时要设置以下设定)Windows-preferences-MyEclipse-FilesandEditors-JSP-Chinese,NationalstandardEncodiing►部署工程(deploy)►启动tomcat►访问►访问注意:XXX为工程名13第一个project►struts.xml讲解►packagename=“struts2”namespace=“/”extends=struts-defaultpackage:java包一个概念,给action打包避免重名Namespace(命名空间):路径extends:继承一个包“struts-default”。固定写法举例说明14第一个project►struts.xml讲解actionname=helloresult/hello.jsp/result/actionName:Result:type默认dispatcher,也就是跳转forword,forword到一个jsp页面去。还有各种各样,以后再讲举例说明15第一个project►struts.xml讲解►开发模式配置constantname=struts.devModevalue=true/举例说明16第一个project►Struts2运行机制17第一个project►Struts2运行机制url请求通过http协议发送给tomcattomcat交给相应的webapp找web.xml,里面配了filterfilter去参考struts.xmlurl里app名后面“/”去找struts.xml里配了个namespace“/”url里去找action里有没有名字为hello的action看这个action的result18第一个project►设计模式带来的好处可扩展行,灵活把请求和拿到的结果(视图)分开,不写死要更换视图,配一下就可以了19练习►用struts2的框架访问页面hello.jsphello.jsp画面显示myfirstproject20Action的实现具体视图的返回可以有用户自己定义的Action决定►具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容►具体Action的实现可以是一个普通的java类,不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法ActionSupport帮我们封装了一系列的可以直接调用的特别方便的方法,比如getText(),validate()验证等等21Action的实现►action的Class属性actionname=userclass=com.zds.action.UserActionresultname=add/add.jsp/resultresultname=delete/delete.jsp/result/action22Action的实现►Class属性当访问action的时候会去找对应的class,去执行它的execute方法。Execute方法没有参数,返回值类型是String这个类的对象是什么时候new出来的?每次访问action必new一个对象(struts1是action对象只有一个)23Action的实现►action的result属性Execute方法返回一个字符串根据这个字符串找到对应的jsp反馈回来resultname=add/add.jsp/resultresultname=delete/delete.jsp/resultresult的name属性不写的时候:默认“success”24练习►练习一:配置一个action,名字叫action1。设置action1的result属性,result值是“ok”的时候跳转到ok.jsp画面,显示thisisok.jspresult值是“ng”的时候跳转到ng.jsp画面,显示thisisng.jspaction1所对应的class的execute方法返回值“ok”。从浏览器访问action1后,跳转到哪个页面?25Action的实现►action的method属性Action调用的时候不一定要执行execute方法actionname=userclass=com.zds.action.UserAction“method=”add“resultname=add/add.jsp/resultresultname=delete/delete.jsp/result/action26Action的实现►练习一续:再配置一个action2result值是“ok”的时候跳转到ok.jsp画面result值是“ng”的时候跳转到ng.jsp画面action2的method属性“not_ok”,所对应的class的not_ok方法返回值“ng”。从浏览器访问action2后,跳转到哪个页面?27Action的实现►ActionMethod的DMI动态方法调用不指定调用的方法actionname=userclass=com.zds.action.UserAction“!add!delete优点:多个方法只配置一个action28Action的实现►通配符配置actionname=a1_*class=action.UserActionmethod={1}result/{1}.jsp/result/action://localhost:8080/struts2_0010/a1_add29Action的实现►通配符配置actionname=*_*class=action.{1}Actionmethod={2}result/{1}_{2}.jsp/result/action练习►建立一个工程,1.配置一个action【action1】调用action类的默认execute方法来显示页面2.配置一个action【action2】,调用action类的execute以外的方法来显示页面3.配置一个action,用随机数的奇偶性来确定跳转的页面4.动态调用以上2和3的action方法的链接是什么31namespace►package的namespace属性访问路径例1:namespace=“/user”actionname=“login”访问:例2:namespace=“/”actionname=“login”访问:►namespace的默认是““例子:namespace=“”actionname=“login”访问:://localhost/xxx/user/aaa/login意味着没有精确匹配的action时就去namespace是”“或者没写的这个package里面去找33Action的属性接受参数►访问jsp往里传递参数,action怎么来接受参数呢►用action属性接收参数=2234Action的属性接受参数►Action类里定义2个属性►写好get和set方法►当new这个action后,会自动把这两个属性从参数里拿过来设置好►url里传递的参数和a

1 / 134
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功