《教学课件第10章 Struts.ppt》由会员分享,可在线阅读,更多相关《教学课件第10章 Struts.ppt(38页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件第10章 Struts版权所有Struts全称是Apache Struts,它是一个用于创
2、建JAVA Web应用程序的开源框架。框架是指包含了一套Web请求处理、Web应答及生产页面内容的架构及相应的辅助代码和工具程序等。Struts包含了三大方面的支持与代码库,来帮助开发者快速快发架构良好的用于商业逻辑与表现分离的Web应用程序1. 请求处理:Struts框架提供良好的Web请求处理机制,它解析用户发送的Http请求地址,把请求分发给相应的由开发者编写的处理代码。2. 应答处理:Struts框架提供方便的Web应答机制,使用配置文件或代码内的标记配置Web请求的结果页面集合,使得以往繁琐复杂的多页面跳转处理和多结果显示处理变得简单容易,便于操作和改动。3. 页面产生:Struts
3、框架提供了丰富的JSP页面标签(tags),使得产生网页模板的JAVA代码与HTML代码可以完全分离,并且对页面模板内可以使用的变量及其表示语法进行了扩充和规范,使得显示代码和业务逻辑处理代码完全分离。Struts框架已经为网页处理做了大部分工作,一般开发者要生成一个Struts支持的动态网站,只需要添加自己的配置文件Struts.xml、Action类、以及网页生成模板。在Struts应用程序需要完成以下内容Action配置文件Struts.xml1.网页生成模板http:/localhost:8080/Struts2Ex1/HelloWorld.action struts2 org.apa
4、che.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /*使用Struts技术提交的url请求通常类似于:http:/localhost:8080/Struts2Ex1/HelloWorld.action/showhelloworld.jspimport com.opensymphony.xwork2.ActionSupport;public class HelloWorld extends ActionSupport String message = ;public String getMessage()
5、 return message;public void setMessage(String message) this.message = message;public String execute() throws Exception message = 欢迎使用Struts 2开发JAVA网站。;return SUCCESS;Execute方法被默认调用 大家好啊。 $message 使用”$”与”#”包含相应内容。在包含的内容里,是JSP页面上下文中可以直接访问的JAVA变量、对象名。http:/localhost:8080/Struts2Ex1/HelloWorld.action 大家
6、好啊。 节点节点节点节点节点节点在节点下至少定义一个结果节点,该节点可以不带任何属性,但是应该明确表示该结果的生成页面路径。此时,结果节点默认的返回名称为”success”。 /usersave.jsp如果user.ManageAction返回的结果不是”sucess”,也即处理过程中出现错误,我们应该能够让其转向出错页面处理。这种情况下,使用节点的name属性,就可以进行出错页面定义: /usersave.jsperror.jsp节点中的type属性是相当重要的一个属性,表示结果处理类型。未经指定时,它默认为”dispatcher”,它指本结果类型是一个JSP分发器,即结果应该由一个请求分发
7、器传递到结果页面处理。 /showhelloworld.jspActionSupport类实现了Action接口。Aciton接口提供了5个常量,在自定义的Aciton类中可以使用这些常量作为方法的返回结果。ERRORINPUTLOGINNONESUCCESS/showhelloworld.jspname属性默认值为”success”模型驱动的action属性驱动的action定义一个类实现ModelDriven 接口,这个类是行为实现器。使得struts 2框架帮助自动填充一个对象的数据。开发者在实现getModel方法时,注意要返回一个数据对象,即希望被填充入数据的对象。Struts 2框
8、架在处理表单时,将会自动把表单里对应名称的输入域的内容向该对象的属性字段填充。在把数据填充入该对象后,还会把它放置在Struts的值堆栈顶,后续操作可以访问该对象。编写一个页面:能输入教师姓名、职称、超额课时,点击提交后输出相应计算后的工资。页面: inputEmp_Model.jsp用于输入编写action类:FulltimeTeacherAction 编写结果页面:inputEmp_Model.jsp部分源码本院全职教师工资计算本院全职教师工资计算 ShowCalResult.jspError.jspinputEmployee.jsppublic class FulltimeTeacher
9、Action extends ActionSupport implements ModelDriven FulltimeTeacher teacher;/模型驱动public Object getModel() teacher = new FulltimeTeacher(,);return teacher;public String CalculateWage() teacher.calculateWage();if (teacher.getWage()0)return Action.SUCCESS;else return inputagain ;工资情况一览你好!$name,你的名字确实叫职
10、称为:超额课时为:工资为: ShowCalResult.jspError.jspinputEmployee.jsppublic 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:
11、mm:ss E).format(java.util.Calendar.getInstance().getTime();public String CalculateWage() tryFulltimeTeacher teacher = new FulltimeTeacher();teacher.setName(name);teacher.setTitle(title);teacher.setExtraclasshour(hour);teacher.calculateWage();wage =teacher.getWage();if (wage0) return SUCCESS;else Set
12、Null();return INPUT; catch(Exception 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
13、title) this.title = 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 setOnb
14、oardtime(String onboardtime) this.onboardtime = onboardtime;工资情况一览你好!职称为:超额课时为:工资为: Struts.xml:showallteachers.jsppackage PayrollAction;import public class FulltimeTeacherAction extends ActionSupport implements ModelDriven public Object getModel() Ex2_Payroll.ManageFulltimeTeachers manage = new Mana
15、geFulltimeTeachers();return manage.getFundamental(); public String GetAllTeachers() return wantall ;public class ManageFulltimeTeachers public Vector getFundamental()Vector teachers = new Vector();teachers.add(new FulltimeTeacher(Amy,副教授副教授);teachers.add(new FulltimeTeacher(Bobby,教授教授);teachers.add( new FulltimeTeacher(Cice,教授教授);return teachers;Insert title here 姓名 职称 $name $title http:/localhost:8080/TestOnlyStruts/GetAllTeachersFulltimeTeacher.action