ImageVerifierCode 换一换
格式:PPT , 页数:67 ,大小:1.93MB ,
文档编号:4988458      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4988458.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(Java-EE轻量级框架应用开发第2章-Struts2标签库课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

Java-EE轻量级框架应用开发第2章-Struts2标签库课件.ppt

1、第二章 Struts2标签库本章要点v标签库概述标签库概述v使用控制标签使用控制标签v使用数据标签使用数据标签v使用表单使用表单UI标签标签标签库概述vStruts2自带了一套非常强大的标签库,不仅自身功能强大,而且与Struts2中的其他部分无缝结合v标签库大大简化了视图页面代码,提高了视图页面的维护效率v与Struts1标签库相比,Struts2标签库不但功能强大,而且更加简单易用标签的优势v 传统Web应用开发中,表现层的JSP页面主要通过使用Java脚本来处理业务逻辑,所以JSP页面中会嵌套大量Java代码,下列代码主要实现商品列表的输出 商品列表 商品名称购买数量修改数量删除商品%f

2、or(int i=0;i a href=editProduct.jsp?id=修改数量 a href=delProduct.jsp?id=删除商品 v上述案例,“之间嵌入了大量Java脚本,这不仅使代码可读性降低,也给以后的维护带来不便,而且很多Java脚本功能相似,从而使页面中包含大量的重复代码vStruts2标签库所提供的标签不但全面而且功能强大,其绝大部分标签不依赖于任何表现层技术vStruts2标签库,不仅能解决传统Web应用开发的问题,也支持JSTL(JSP Standard Library,JSP标准标签库),而且还支持更加强大的表达式语言OGNL(Object-Graph Nav

3、igation Language,对象导航语言)Struts2标签库分类vStruts2标签库分成三大类 UI标签主要用于生产HTML页面元素 非UI标签主要用于进行数据逻辑输出和数据访问等 Ajax标签主要用于支持Ajax技术vUI标签分为两类 表单标签主要用于生成HTML中的表单 非表单标签主要包含一些常用的功能标签,例如显示日期或者树状菜单v非UI标签,可以细分为两类 数据标签主要用于进行数据存储和处理。逻辑控制标签主要用于进行条件和循环等流程控制v标签库概述标签库概述v使用控制标签使用控制标签v使用数据标签使用数据标签v使用表单使用表单UI标签标签使用控制标签v 逻辑控制标签主要用于程

4、序流程的逻辑控制,例如选择、分支和循环,也可以实现对集合进行合并和排序等操作 If:用户控制选择输出 elseif:与if标签结合使用 else:与if标签结合使用 append:用于将多个集合合并成一个新集合 generator:用于将一个字符串解析成一个集合 iterator:这是一个迭代器,用于将集合进行循环输出 merge:与append标签一样,用于将多个集合合并成一个新集合,但方式有所不同 sort:用于对集合进行排序 subset:用于截取集合的一部分,形成一个新的子集合if/else if/else 标签vif/elseif/else标签和Java程序里的用法类似v通过set标

5、签定义一个名为dengji的属性,并且为属性设置初始值,然后通过if/elseif/else标签根据dengji属性值的范围来控制输出 =90成绩优秀 =80成绩良好 =60成绩合格 成绩不合格针对集合操作的标签vIteratorvappendvmergevgeneratovsubsetvsortIterator标签v用于对集合类型的变量进行迭代输出,集合类型包括List、Set、数组和Map等,该标签主要有3个属性 Value:可选属性,该属性用来指定被迭代输出的集合,被迭代的集合可以由OGNL表达式指定,也可以通过Action返回一个集合类型。id:可选属性,该属性用来指定集合中元素的ID

6、属性。status:可选属性,该属性用来指定集合中元素的status属性v 通过iterator标签指定一个集合,value属性指定集合元素值,并指定id属性值为bookname,然后输出集合中每个元素的值v通过iterator标签输出一个集合,并定义status属性。在if标签中通过status属性值st调用odd()方法,实现奇数行字体颜色的控制ul style=color:red;viterator标签迭代输出的都是集合类型,除此之外,iterator标签也能很好地对Map对象进行迭代输出,Map对象中的每个key-value组合都被当成一个集合元素 姓名 年龄 ulstyle=back

7、ground-color:yellow;width:500px;float:left;append标签v append标签可以把多个集合对象连接起来,从而组成一个新的集合。标签的id属性定义连接后新集合的名字。该标签包含有param子标签,每个子标签指定一个集合v append标签中定义了两个param子标签,每个子标签分别对应1个集合。这两个集合重新组合后,通过iterator标签循环输出,使value值指向append标签的id属性值 ul style=color:blue;width:500px;merge标签vmerge标签和append标签所实现的功能一样,但是在这两个标签连接生产的

8、新集合中,元素的排序方式有所不同 迭代输出由append标签产生的新集合 ul style=color:blue;width:400px;height:20px;迭代输出由merge标签产生的新集合 ulstyle=color:blue;width:400px;height:20px;generator标签v可以将一个字符串按指定的分隔符分隔成多个子串,新生成的多个子串可以使用iterator标签进行迭代输出vgenerator标签时可以指定的属性 count:可选属性,用来指定所生成集合中元素的总数 val:必选属性,指定被解析的字符串 separator:必选属性,用来指定分隔符 conv

9、erter:可选属性,用来指定一个转换器,该转换器负责将集合中的每个字符串转换成对象 id:可选属性,如果指定该属性,则新生成的集合会被放在pageContext属性中v使用generator标签时,通过value属性定义1个集合,通过separator属性定义集合的分割符合为“,”迭代输出由generator标签产生的新集合ulstyle=color:blue;width:400px;subset标签vsubset标签用于从一个集合中进行截取,从而产生一个新的子集合 source:可选属性,该属性用来指定源集合 count:可选属性,该属性用来指定子集合中元素的个数,如果不指定该属性,则默认

10、取得源集合中的所有元素 start:可选属性,该属性用来指定从源集合的第几个元素开始截取 decider:可选属性,该属性用来指定是否选中当前元素vsubset标签设置start=”1”和count=”3”,表示从源集合的第2个元素开始,从后截取3个元素,由这些元素组合成一个新元素,并通过iterator标签进行迭代输出 使用subset标签截取集合 ul style=color:blue sort标签v用来对指定的集合进行排序,但是排序规则要由开发者提供,即实现自己的Comparator实例,Comparator是通过实现parator接口来实现的 comparatro:必选属性,该属性用来

11、指定实现排序规则的compaarator实例 source:可选属性,该属性用来指定将要排序的集合v首先创建Comparator类,在该类中实现排序规则v在实现Comparator类时,需要实现compare(Object element1,Object element2)方法,具体实现了排序规则,下例将根据字符串的长度来进行排序package com;import java.util.Comparator;public class MyComparator implements Comparatorpublic int compare(Object element1,Object eleme

12、nt2)return element1.toString().length()-element2.toString().length();v 创建客户端JSP页面,实现对集合排序的输出显示,使用bean标签引入了排序规则类,使用sort标签时,通过source属性指定资源对象,使用iterator标签循环输出 使用sort标签对集合进行排序ul style=color:blue v标签库概述标签库概述v使用控制标签使用控制标签v使用数据标签使用数据标签v使用表单使用表单UI标签标签使用数据标签v数据标签主要用来实现获得或访问各种数据的功能,常用于显示Action中的属性以及国际化输出等 act

13、ion:该标签用于在JSP页面中直接调用一个Action bean:该标签用于创建一个JavaBean实例 debug:该标签用于生成一个链接,通过这个链接,可以查看当前ValueStack 和 StackContext 中的内容 i18n:该标签用于指定国际化资源文件 include:该标签用于在JSP页面中包含其他资源 param:该标签用于设置一个参数,通常用做bean标签和url标签的子标签 property:该标签用于输出某个值 set:该标签用于设置一个新变量 text:该标签用于输出国际化消息 url:该标签用于生成一个URL地址 date:该标签用于格式化输出一个日期actio

14、n标签v允许在JSP页面中直接调用Action,要调用Action就需要指定Action的name和namespace等属性 id:可选属性,用来指定被调用Action的引用ID name:必选属性,用来指定被调用Action所在的namespace executeResult:可选属性,用来指定是否将Action的处理结果包含到当前页面中,该属性的默认值是false,即不包含 ignoreContextParams:可选属性,用来指定当前页面中的参数是否需要传给被调用的Action,该属性的默认值是false,即默认将页面中的参数传给被调用Actionv TagAction类包含两个方法:e

15、xecute()和login(),其中execute()方法用于进行逻辑处理,直接返回字符串ok;login()方法也用于进行逻辑处理,并设置名称为name的request对象,然后返回字符串okpackage com;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class TagAction extends ActionSupportprivate String name;public void setName(String name)th

16、is.name=name;public String getname()return name;public String execute()throws Exceptionreturn ok;public String login()throws ExceptionServletActionContext.getRequest().setAttribute(name,getname();return ok;vstruts.xml文件中配置Action,配置两个逻辑Action,并返回2个视图v视图文件succ.jsp定义,只是输出“调用Action!”succ.jsploginSucc.js

17、p调用Action!v创建登录成功图文件loginSucc.jsp,通过property标签输出当前页面传递的参数值v创建actionTag.jsp文件 登录成功!下面调用第二个Action,并将结果包含到本页面中。并且阻止当前页面的参数传入Action。下面调用第二个Action,并不将结果包含到本页面中。但接受当前页面的参数传入Action。当前页面传递的参数name的值:v说明 第1个action标签调用名字为tag1的逻辑action,并设置executeResult属性,属性值为true表示将结果包含到本页面中 第2个action标签调用名字为tag2的逻辑Action,并设置ign

18、oreContextParams属性,属性值true表示阻止当前页面传入的参数值 第3个action标签也调用名字为tag2的逻辑Action,并默认接收当前页面传入的参数值 地址栏中输入http:/localhost:8080/ch2/actionTag.jsp?name=aabean标签标签v用于在当前页面中创建JavaBean实例对象,在使用该标签创建JavaBean对象时,可以嵌套param标签,为该JavaBean实例指定属性值 name:必选属性,用来指定可以实例化JavaBean的实现类 id:可选属性,如果指定该属性,就可以直接通过id来访问中国JavaBean实例packag

19、e com;public class Person private String name;private int age;private String sex;private String home;public String getName()return name;public void setName(String name)this.name=name;/省略其他属性的setXXX()和getXXX()方法vbeanTag.jsp页面文件中使用bean标签,通过使用bean标签创建Person对象,并使用param标签为Person对象的两个属性赋值,最后使用property标签输出

20、Person对象的属性值姓名:年龄:性别:籍贯:debug标签v主要用于辅助调试,通过该标签可以再页面上生成一个链接,单击这个链接可以查看ValueStack和Stack Context中的所有信息v在beanTag.jsp页面中加入标签,然后再运行该页面,该页面中将增加一个链接,如左图;单击“debug”链接,如右图include标签v用来将JSP生成的Servlet等资源内容包含到当前页面中 value:必选属性,用来指定被包含的JSP或Servlet等资源文件 id:可选属性,用来指定该标签的引用IDv在include标签中可以嵌套param标签,实现将当前页面的参数传给被包含的页面v通

21、过request对象的getParameter()方法获得传递的参数并进行输出,includefile.jsp页面代码如下v使用include标签包含includefile.jsp文件,通过param标签给includefile.jsp页面传递user参数和参数值,includeTag.jsp文件代码如下这是includefile.jsp页面传递的姓名为:使用include标签包含includefile.jsp页面param标签v 通常要与其他标签结合起来使用,主要用来为其他标签提供参数,有两种用法 red v 说明 name属性是可选的,如果提供name属性,则要求Component提供该属

22、性的setXXX()方法,系统根据该方法传入参数;如果不提供,则外层标签必须实现UnnamedParametric接口 如果参数值是一个对象而不是一个字符串,第2种用法需要改变一下,例如:,value值没有单引号 第2种用法,定义value属性,希望直接传入字符串值,则应该将字符串常量放在单引号中,例如value=”red”和value=”WHM”property标签v作用就是输出value属性指定的值 default:用来指定当属性值为null时输出的值 escape:用来指定是否显示标签代码,不显示则指定属性值为false set标签v用来设置一个新的变量,并把一个已有的变量值复制给这个新

23、变量,同时可以把这个新变量放到指定的范围内,例如application范围和session范围等 name:用来定义新变量的名字 scope:用来定义新变量的使用范围,可选值有application、session、request、response、page和action value:用来定义将要赋值给新变量的值 id:用来定义该元素的引用IDv通过value=”%struts2”设置属性值,然后将该属性值输出。接下来使用bean标签生成一个JavaBean实例,然后通过set标签定义一个新变量,并把这个新变量分别放在action和session范围内 Struts 2 Set Tag 示例T

24、echnology Name:使用s:set设置一个新变量scope属性值为action范围:scope属性值为session范围:url标签v用来生成一个URL地址,也可以通过嵌套param标签来为URL指定发送参数 includeParams:用来指定是否包含请求参数,有3个可选参数值:none、get和all value:用来指定URL的地址值 action:用来指定一个Action作为URL地址值 namespace:用来指定命名空间 method:用来指定调用Action的方法名 encode:用来指定是否编码请求参数 includeContext:用来指定是否将当前上下文包含在UR

25、L地址值中 id:用来指定URL元素的引用IDv通过为url标签指定不同的属性,将得到不同的url地址使用url标签指定action属性,且使用s:param标签传入参数。hr指定value属性,且使用s:param标签传入参数。既不指定action属性,也不指定value属性,但使用s:param标签传入参数。date标签v用来按指定格式输出一个日期,还可以计算指定时间到当前时间的时差 format:用来指定日期格式 nice:指定是否输出指定时间与当前时间的时差,默认值为false,即不输出时差 name:用来指定要格式化输出的日期值 id:用来指定该元素的引用IDv使用date标签定义了

26、format属性,将当前日期以多种形式输出显示,通过将nice属性指定为true或false来显示不同内容date标签的使用日期格式日期Day/Month/YearMonth/Day/YearMonth/Day/YearMonth/Day/Year Hour:MinuteMonth/Day/Year Hour:Minute:SecondNice Date(Current Date&Time)Nice Datev创建Action文件DateTag.javav在struts.xml文件中对该Action进行配置,其name值为dateTag。在运行程序时,浏览器地址栏中输入http:/localh

27、ost:8080/ch2/dateTag.actionpublic class DateTag extends ActionSupport private Date currentDate=new Date();public Date getCurrentDate()return currentDate;public void setCurrentDate(Date currentDate)this.currentDate=currentDate;public String execute()throws Exception return SUCCESS;v标签库概述标签库概述v使用控制标签使

28、用控制标签v使用数据标签使用数据标签v使用表单使用表单UI标签标签使用表单UI标签v表单UI标签的种类比较多,而且每个标签都包含很多属性,但有很多属性都是通用的v表单标签的通用属性 一般来说,可以将表单标签的通用属性分成3种,分别是模板相关属性、Javascript相关属性和通用属性表单标签通用属性表单模板相关属性Javascript相关属性form标签v创建JSP文件,在这个文件中包含一些简单的表单标签Struts 2的简单表单标签 文本域型标签v 单行文本框textfield 标签对应着HTML的,用于生成单行文本 maxlength:单行文本框中所能容纳的最大文本长度 size:单行文本

29、框自身的长度 readonly:单行文本框是否只读v 多行文本框textarea 用来输入一段可能很长的带有回车的文本,对应HTML中的 cols:列数 rows:行数 readonly:多行文本是否只读 wrap:指定多行文本框中的内容是否自行换行 textarea标签指定默认值得时候,必须使用value属性,而不是标签内的文本,而HTML的正好相反v密码框password 用来输入一段单行文本,但是不会明文显示,而是用掩码代替,password标签对应 maxlength:单行文本中所能容纳的最大文本长度 size:单行文本框自身的长度 readonly:单行文本框是否只读 showPas

30、sword:是否显示初始值,即是显示也仍为密文显示,用掩码代替 只要设置value属性就可以将value属性的值作为默认值显示;但是Struts2的password标签除了要设置value属性,还要设置showPassword属性为true选择型标签vcheckboxlist标签 主要用来根据list属性的指定的集合一次创建多个复选框,即一次生成多个HTML表单标签中的 如果list属性是一个字符串集合,那就不需要再指定该标签的其他属性,如果list属性是一个Java对象或者Map对象,那么仍然需要指定该标签的listKey和listValue属性 listKey:该属性用来指定集合元素中的某

31、个属性作为复选框的value,如果集合元素是一个Java对象,那么就指定该Java对象的name属性作为复选框的value listValue:该属性用来指定集合元素中的某个属性作为复选框的标签,如果集合元素是一个Java对象,那么就指定该Java对象的name属性作为复选框的valuev创建了一个Book类,该类含有name和price两个属性package com;public class Book private String name;private String price;public Book()public Book(String name,String price)this.

32、name=name;this.price=price;/省略属性的setXXX()和getXXX()方法 v创建BookService类返回一个集合对象,该集合包含有3个Book对象package com;public class BookService public Book getBooks()return new Booknew Book(Java从入门到精通,68),new Book(Struts 2完全学习手册,55),new Book(Ajax完全学习手册,38);v 创建JSP页面v checkboxlist标签使用了3次,分别实现使用字符串集合生成多个复选框、使用Map对象生成

33、多个复选框和使用Java对象集合生成多个集合生成多个复选框 vradio标签 用于生成单选框,通过指定list、listKey和listValue等属性来生成HTML元素,具体用法与checkboxlist标签的用法几乎完全相同 vcombobox标签 使用combobox标签时,会生成两个元素,分别是单行文本框和下拉列表框。其中文本框的值对应请求参数,而下拉列表框用来辅助输入,并没有name属性,也不会产生请求参数。当选择下拉列表框中的一个选项时,该选项会自动出现在文本框中。该标签通过list属性所指定的集合来生成列表项v通过两种方式使用combobox标签。第1种方式是直接定义list属性

34、,第2种方式时通过调用BookService类得到Book集合对象 select标签v用来生成下拉列表框,通过为该标签的list属性指定一个集合可以生成下拉列表框的选项v该标签与checkboxlist标签的用法非常相似,在使用Map对象和Java对象集合来生成下拉列表框时,也可以使用listkey和listValue属性,用来指定下拉列表框的value和label属性vdoubleselect标签 用于生成两个相互关联的下拉列表框,当选择第1个下拉列表框的值时,第2个下拉列表框的内容会随之改变,这两个下拉列表框时相互关联的,相当于级联下拉列表 可以通过Map类型来实现关联关系,把Map对象的

35、Key值作为第1个下拉列表框的集合,把Map对象的Value值作为第2个下拉列表的集合v使用set标签创建Map对象,然后使用list=”#pc.keySet()”给第1个下拉列表框指定集合元素,使用doubleList=”#pctop”给第2个下拉列表框指定集合元素 其他简单标签v除了上面介绍的文本型标签和选择型标签之外,还有一些比较简单的标签,基本都可以从HTML中找到对应的标签,其用法也差不多,而且也遵守前面总结过的通用属性 Struts2的hidden标签对应 Struts2的file标签对应 Struts2的reset标签对应 Struts2的submit标签对应 Struts2的l

36、abel标签对应HTML的 Struts2的checkbox标签对应一个标签,它的特殊之处在于只能表达boolean值,它提交到Action的值只能是使用boolean类型的属性复杂操作标签vStruts2的表单标签还提供了一些用于复杂操作的标签,如updownselect标签、optiontransferselect标签等v这些标签在HTML里并没有直接对应的标签,一般都是通过简单表单域和一些Javascript来实现多个表单域的联动,或单个表单域内的复杂操作,从而满足更复杂的需求v可以查阅Struts2官网http:/struts.apache.org上下载最新API帮助文档查阅小结小结vStruts2作为一个优秀的MVC框架,提供了一个功能强大、支持广泛和高扩展性的标签库,完全能满足Web页面复杂性和多边形的需求vStruts2将所有标签都统一到一个标签库中,从而简化了标签的使用,而且Struts2标签库提供主题和模板支持,极大的简化了视图页面代码的编写vStruts2标签库提供对Ajax的支持,大大丰富了视图的表现效果vStruts2标签库的构成和应用,并为每种类型的标签都提供实例代码进行讲解

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|