struts2框架

上传人:今*** 文档编号:106612658 上传时间:2019-10-15 格式:PPT 页数:134 大小:2.24MB
返回 下载 相关 举报
struts2框架_第1页
第1页 / 共134页
struts2框架_第2页
第2页 / 共134页
struts2框架_第3页
第3页 / 共134页
struts2框架_第4页
第4页 / 共134页
struts2框架_第5页
第5页 / 共134页
点击查看更多>>
资源描述

《struts2框架》由会员分享,可在线阅读,更多相关《struts2框架(134页珍藏版)》请在金锄头文库上搜索。

1、1,Strus2框架 主讲:黄玲,2,什么叫框架,框架概念 framework 框架的优点 重用性 提高质量和效率,3,Struts2框架,一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是其中之一,Struts是流行的基于J2EE的架构方案。 B/S多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现良好的可维护性。,4,Struts2简介,Struts2其实是从WebWork基础上发展起来的。从某种程度上来讲,Str

2、uts2没有继承Struts 1的血统,而是继承WebWork的血统 其实Struts2稳定性、性能等各方面都有很好的保证。而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常值得期待的框架。,5,MVC,V:view,视图 处理完的结果,动态定义对应的视图 M:model,模型(user) Action里保存的东西,他就是来处理我们的请求 C:控制器(action) 谁来控制我用哪个模型来处理,谁来控制我要到哪个视图去 请求的产生,请求的处理,请求的结果全部给分开了。,6,第一个project,先通过一个project来认识一下struts2 准备环境 安装软件:myecl

3、ipse8 tomcat6 jdk1.6,7,第一个project,1.建立工程 file-new-project-MyEclipse-Java Enterprise Projects-Web Project Next Project Name:001 Java EE 5.0 finish 2.设置 Window-preferences-MyEclipse-server-Tomcat6.x-enable Window-preferences-Java-Installed JREs-Add-Standard VM,8,第一个project,3.确认 JRE System Library来自JKD

4、。 Java EE 5 Libraries是Myeclipse自带的,不用管 4.添加struts2用lib 工程名右键-Myeclipse-Add struts capabilities-struts2.1-finish 确认 src下有struts2.xml web.xls里有filter的配置,9,第一个project,web.xml 位置:WEB-INF struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* ,10,第一个project,StrutsPrepare

5、AndExecuteFilter 作用:在我们的业务处理的前后做了很多很多的事。比如帮我们从画面输入框取值,放到action里等,11,第一个project,Struts.xml 位置:src /hello.jsp ,12,第一个project,Index.jsp改名为hello.jsp(注意Jsp文件里使用中文时要设置以下设定) Windows-preferences-MyEclipse-Files and Editors-JSP-Chinese,National standard Encodiing 部署工程(deploy) 启动tomcat 访问http:/localhost:8080

6、访问http:/localhost:8080/XXX/hello.action 注意:XXX为工程名,13,第一个project,struts.xml讲解 package:java包一个概念,给action打包避免重名 Namespace(命名空间):路径 extends:继承一个包“struts-default”。固定写法 举例说明,14,第一个project,struts.xml讲解 /hello.jsp Name: Result:type默认dispatcher,也就是跳转forword,forword到一个jsp页面去。 还有各种各样,以后再讲 举例说明,15,第一个project,s

7、truts.xml讲解 开发模式配置 举例说明,16,第一个project,Struts2运行机制,17,第一个project,Struts2运行机制 url请求通过http协议发送给tomcat tomcat交给相应的webapp 找web.xml,里面配了filter filter去参考struts.xml url里app名后面“/” 去找struts.xml里配了个namespace“/” url里去找action里有没有名字为hello的action 看这个action的result,18,第一个project,设计模式带来的好处 可扩展行,灵活 把请求和拿到的结果(视图)分开,不写死

8、 要更换视图,配一下就可以了,19,练习,用struts2的框架访问页面hello.jsp hello.jsp画面显示 my first project,20,Action的实现,具体视图的返回可以有用户自己定义的Action决定 具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容 具体Action的实现可以是一个普通的java类,不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法 ActionSupport帮我们封装了一系列的可以直接调用的特别方便的方法,比如getText(),validate()验证等等,21,Action的实现,a

9、ction的Class属性 /add.jsp /delete.jsp ,22,Action的实现,Class属性 当访问action的时候会去找对应的class,去执行它的execute方法。 Execute方法没有参数,返回值类型是String 这个类的对象是什么时候new出来的? 每次访问action必new一个对象(struts1是action对象只有一个),23,Action的实现,action的result属性 Execute方法返回一个字符串 根据这个字符串找到对应的jsp反馈回来 /add.jsp /delete.jsp result的name属性不写的时候:默认“success

10、”,24,练习,练习一: 配置一个action,名字叫action1。设置action1的result属性, result值是“ok”的时候跳转到ok.jsp画面,显示this is ok.jsp result值是“ng”的时候跳转到ng.jsp画面,显示this is ng.jsp action1所对应的class的execute方法返回值“ok”。 从浏览器访问action1后,跳转到哪个页面?,25,Action的实现,action的method属性 Action调用的时候不一定要执行execute方法 /add.jsp /delete.jsp ,26,Action的实现,练习一续: 再

11、配置一个action2 result值是“ok”的时候跳转到ok.jsp画面 result值是“ng”的时候跳转到ng.jsp画面 action2的method属性“not_ok”, 所对应的class的not_ok方法返回值“ng”。 从浏览器访问action2后,跳转到哪个页面?,27,Action的实现,ActionMethod的DMI动态方法调用 不指定调用的方法 http:/localhost:8080/hello/user!add http:/localhost:8080/hello/user!delete 优点:多个方法只配置一个action,28,Action的实现,通配符配置

12、 /1.jsp http:/localhost:8080/struts2_0010/a1_query http:/localhost:8080/struts2_0010/a1_add,29,Action的实现,通配符配置 /1_2.jsp http:/localhost:8080/struts2_0010/Student_add,30,练习,建立一个工程, 1.配置一个action【action1】调用action类的默认execute方法来显示页面 2.配置一个action【action2】,调用action类的execute以外的方法来显示页面 3.配置一个action,用随机数的奇偶性来

13、确定跳转的页面 4.动态调用以上2和3的action方法的链接是什么,31,namespace,package的namespace属性 访问路径 例1:namespace=“/user” action name=“login” 访问:http:/localhost/xxx/user/login 例2:namespace=“/” action name=“login” 访问:http:/localhost/xxx/login,32,namespace,namespace的默认是“ 例子:namespace=“” action name=“login” 访问:http:/localhost/xxx

14、/user/login http:/localhost/xxx/user/aaa/login http:/localhost/xxx/user/aaa/bbb/login 意味着没有精确匹配的action时就去namespace是”“或者没写的这个package里面去找,33,Action的属性接受参数,访问jsp往里传递参数,action怎么来接受参数呢 用action属性接收参数 http:/localhost:8080/struts_0010/odd?rNumber=22,34,Action的属性接受参数,Action类里定义2个属性 写好get和set方法 当new这个action后,

15、会自动把这两个属性从参数里拿过来设置好 url里传递的参数和action里的成员变量可以是一一对应的。自动把参数的只直接传递到属性里给你设定好 String和int类型自动会转换好,35,Action的属性接受参数,注意: get和set方法必须写好 Struts2把参数往属性里传的时候调的是你的get和set方法,如果你的get和set方法名称写得不对,值是无法传进来的。 Get和set方法后面的名称必须和url传递进来的名称一致。,36,用DomainModel接收参数,域模型 在系统中真正存在的实体的概念 http:/localhost:8080/struts_DomainModel/u

16、ser!add?user.username=a&user.password=001 不用new user对象,struts2会给你new,37,Action总结,实现Action最常用的是从ActionSupport继承 DMI动态调用 接受参数(两种方法:一般属性或者DomainModel),38,Action总结练习,练习 画面有输入框,分别输入姓名,语文,数学,英语成绩。提交以后如果姓名不是“jack”,就跳转到输入姓名错误页面。如果姓名正确,就根据平均分跳转到及格页面和不及格页面。,39,Result的type,result可以指定类型: dispatcher:默认type,跳转到指定的结果页面,但是不能是action redirect:客户端跳转。跳转到指定的结果页面,但是不能是action chain:forword到一个action redirectAction:客户端跳转到一个action,40,Result的type,freemarker httpheader:发一个http的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号