Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts

上传人:w****i 文档编号:92361034 上传时间:2019-07-09 格式:PPT 页数:37 大小:776.50KB
返回 下载 相关 举报
Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts_第1页
第1页 / 共37页
Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts_第2页
第2页 / 共37页
Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts_第3页
第3页 / 共37页
Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts_第4页
第4页 / 共37页
Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts》由会员分享,可在线阅读,更多相关《Web高级程序设计 Java & Jsp 应用型高等教育网络类课程规划教材 丁一凡第10章 Struts(37页珍藏版)》请在金锄头文库上搜索。

1、第8章 Struts开发基础,武昌工学院 信息工程学院 姚远 版权所有,10.1 什么是Struts?,Struts全称是Apache Struts,它是一个用于创建JAVA Web应用程序的开源框架。框架是指包含了一套Web请求处理、Web应答及生产页面内容的架构及相应的辅助代码和工具程序等。,10.1 什么是Struts?,Struts包含了三大方面的支持与代码库,来帮助开发者快速快发架构良好的用于商业逻辑与表现分离的Web应用程序 1. 请求处理:Struts框架提供良好的Web请求处理机制,它解析用户发送的Http请求地址,把请求分发给相应的由开发者编写的处理代码。 2. 应答处理:S

2、truts框架提供方便的Web应答机制,使用配置文件或代码内的标记配置Web请求的结果页面集合,使得以往繁琐复杂的多页面跳转处理和多结果显示处理变得简单容易,便于操作和改动。 3. 页面产生:Struts框架提供了丰富的JSP页面标签(tags),使得产生网页模板的JAVA代码与HTML代码可以完全分离,并且对页面模板内可以使用的变量及其表示语法进行了扩充和规范,使得显示代码和业务逻辑处理代码完全分离。,10.1.2 Struts应用程序的架构,Struts框架已经为网页处理做了大部分工作,一般开发者要生成一个Struts支持的动态网站,只需要添加自己的配置文件Struts.xml、Actio

3、n类、以及网页生成模板。 在Struts应用程序需要完成以下内容 Action 配置文件Struts.xml 网页生成模板,10.2使用Eclipse开发Struts 2网站,运行效果,http:/localhost:8080/Struts2Ex1/HelloWorld.action,10.2.3 修改web.xml配置文件, struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* ,10.2.4 添加Struts.xml配置文件,使用Struts技术提交的url请求通常类

4、似于: http:/localhost:8080/Struts2Ex1/HelloWorld.action, /showhelloworld.jsp ,10.2.5 添加Action代码类,import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport String message = “; public String getMessage() return message; public void setMessage(String message) this.messag

5、e = message; public String execute() throws Exception message = “欢迎使用Struts 2开发JAVA网站。“; return SUCCESS; ,Execute方法被默认调用,10.2.6 编辑网页生成模板, 大家好啊。 $message ,使用”$”与”#”包含相应内容。在包含的内容里,是JSP页面上下文中可以直接访问的JAVA变量、对象名。,运行效果,http:/localhost:8080/Struts2Ex1/HelloWorld.action, 大家好啊。 ,10.3 Struts的配置文件,节点 节点 节点,10.3

6、.4 节点,在节点下至少定义一个结果节点,该节点可以不带任何属性,但是应该明确表示该结果的生成页面路径。此时,结果节点默认的返回名称为”success”。 /usersave.jsp ,如果user.ManageAction返回的结果不是”sucess”,也即处理过程中出现错误,我们应该能够让其转向出错页面处理。这种情况下,使用节点的name属性,就可以进行出错页面定义:, /usersave.jsp error.jsp ,节点中的type属性,节点中的type属性是相当重要的一个属性,表示结果处理类型。未经指定时,它默认为”dispatcher”,它指本结果类型是一个JSP分发器,即结果应该

7、由一个请求分发器传递到结果页面处理。, /showhelloworld.jsp ,ActionSupport类实现了Action接口。Aciton接口提供了5个常量,在自定义的Aciton类中可以使用这些常量作为方法的返回结果。 ERROR INPUT LOGIN NONE SUCCESS,节点中的name属性, /showhelloworld.jsp ,name属性默认值为”success”,10.4 编写Struts的Action,模型驱动的action 属性驱动的action,10.4.2 模型驱动,定义一个类实现ModelDriven 接口,这个类是行为实现器。 使得struts 2框

8、架帮助自动填充一个对象的数据。 开发者在实现getModel方法时,注意要返回一个数据对象,即希望被填充入数据的对象。 Struts 2框架在处理表单时,将会自动把表单里对应名称的输入域的内容向该对象的属性字段填充。 在把数据填充入该对象后,还会把它放置在Struts的值堆栈顶,后续操作可以访问该对象。,10.4.2 模型驱动:示例,编写一个页面:能输入教师姓名、职称、超额课时,点击提交后输出相应计算后的工资。 页面: inputEmp_Model.jsp用于输入 编写action类:FulltimeTeacherAction 编写结果页面:,模型驱动,inputEmp_Model.jsp部分

9、源码, 本院全职教师工资计算 本院全职教师工资计算 ,模型驱动 struts.xml中相关配置, ShowCalResult.jsp Error.jsp inputEmployee.jsp ,模型驱动:编写action,public class FulltimeTeacherAction extends ActionSupport implements ModelDriven FulltimeTeacher teacher; /模型驱动 public Object getModel() teacher = new FulltimeTeacher(“,“); return teacher; ,模

10、型驱动:编写action,public String CalculateWage() teacher.calculateWage(); if (teacher.getWage()0) return Action.SUCCESS; else return “inputagain “; ,模型驱动:编写结果页面: ShowCalResult.jsp, 工资情况一览 你好!$name,你的名字确实叫 职称为: 超额课时为: 工资为: ,模型驱动:运行效果,属性驱动action的应用实例,struts.xml中相关配置, ShowCalResult.jsp Error.jsp inputEmploye

11、e.jsp ,编写action,public class FulltimeTeacherAction extends ActionSupport private String name; private String title; private Float hour; private Float wage; private String onboardtime; public FulltimeTeacherAction() onboardtime=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss E“).format(java.util.Calendar.g

12、etInstance().getTime(); public String CalculateWage() try FulltimeTeacher teacher = new FulltimeTeacher(); teacher.setName(name);teacher.setTitle(title); teacher.setExtraclasshour(hour);teacher.calculateWage(); wage =teacher.getWage(); if (wage0) return SUCCESS; else SetNull();return INPUT; catch(Ex

13、ception e)return ERROR; ,public String SetDefault() SetNull(); return INPUT; private void SetNull() this.setName(“); this.setTitle(“); this.setHour(Float.valueOf(“0“); public void setName(String name) this.name = name; public String getName() return name; public void setTitle(String title) this.titl

14、e = title; public String getTitle() return title; public void setHour(Float hour) this.hour = hour; public Float getHour() return hour; public void setWage(Float wage) this.wage = wage; public Float getWage() return wage; public String getOnboardtime() return onboardtime; public void setOnboardtime(

15、String onboardtime) this.onboardtime = onboardtime; ,编写结果页面:ShowCalResult.jsp, 工资情况一览 你好! 职称为: 超额课时为: 工资为: ,10.5.3 集合对象:应用示例,Struts.xml:, showallteachers.jsp ,PayrollAction.FulltimeTeacherAction,package PayrollAction; import public class FulltimeTeacherAction extends ActionSupport implements ModelDr

16、iven public Object getModel() Ex2_Payroll.ManageFulltimeTeachers manage = new ManageFulltimeTeachers(); return manage.getFundamental(); public String GetAllTeachers() return “wantall “; ,ManageFulltimeTeachers类定义,public class ManageFulltimeTeachers public Vector getFundamental() Vector teachers = new Vector(); teachers.add(new FulltimeTeacher(“Amy“,“副教授“); teachers.add(

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

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

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