零点起飞学Java-Web开发之Struts-2标签库教学课件_第1页
零点起飞学Java-Web开发之Struts-2标签库教学课件_第2页
零点起飞学Java-Web开发之Struts-2标签库教学课件_第3页
零点起飞学Java-Web开发之Struts-2标签库教学课件_第4页
零点起飞学Java-Web开发之Struts-2标签库教学课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

零点起飞学JavaWeb开发之Struts2标签库零点起飞学JavaWeb开发之Struts2标签库零点起飞学JavaWeb开发之Struts2标签库第21章Struts2标签库Struts2框架提供给开发者定义好的标签库,使用Struts2标签进行视图层开发简洁而又功能强大。可以说,Struts2标签是在Struts1基础上的一个很大的进步。前几章示例中的JSP文件已经在使用Struts2标签了。本章将讲解常用标签的使用方法,力求让读者能够准确掌握它们的用法。21.1Struts2标签库概述Struts2标签极大地简化了页面的输出,同时又提供了丰富、强大的功能,下面通过几个方面对其进行介绍。21.1.3

Struts2标签库的使用使用Struts2标签库必须指定标签库定义文件(TLD文件)的位置,该文件记录了实现标签功能文件的位置、属性等信息,JSP容器通过该文件获知在什么地方调用标签库。解压struts2-core-2.3.4.jar文件,读者可以在META-INF目录下找到struts-tags.tld文件。21.2Struts2控制标签Struts2控制标签主要包含一些用于实现分支、循环等流程控制的标签。使用该类标签可以在JSP文件中方便地进行流程控制。下面分别对这些标签进行讲解。21.2.1循环标签iteratoriterator标签主要用来对集合属性进行遍历输出,其中的集合属性可能是List、Map或者是数值。从上面的代码可以看出iterator标签的使用方法。在使用<s:iterator>标签进行输出时,常用的标签属性如下所述。id:指定了集合的id。value:该属性指定即将进行遍历的集合对象。status:该属性用来代表一个遍历时的IteratorStatus实例,该实例即当前被遍历到的集合的元素。IteratorStatus常用的方法有以下几个。intgetIndex():返回当前被遍历元素的索引值。intgetCount():返回已经遍历元素的总数。boolean

isEven():判断当前迭代元素是否为偶数。boolean

isOdd():判断当前迭代元素是否为奇数。boolean

isFirst():判断当前迭代元素是否为集合中第一个元素。boolean

isLast():判断当前迭代元素是否为集合中最后一个元素。21.2.2选择标签if/elseif/else该标签主要用来控制流程分支,同Java的流程控制相似,都是用一个boolean类型的表达式的值判断是否进行相关的操作,其格式如下:<s:iftest="">...<s:if><s:elseiftest="">...<s:elseif><s:else>...</s:else>上面3个标签中的test属性必须设置,它是一个boolean类型的表达式,如果test的值为true,则进行下面的操作。下面通过一个例子说明其使用方法。21.2.3集合连接标签appendappend标签用于将多个集合对象连接在一起,从而组成一个新的集合。一般来说,这样拼接的目的就是为了使用iterator标签遍历新的集合。id:用来指定拼接后生成对象的id。这样在使用iterator遍历时就可以通过value引用到该对象。例如,newList是新生成List对象的id,在iterator遍历时,用value="#newList"来指向该List对象。<s:param/>:用来指定要拼接的子对象。例如myList1和myList2就是两个用来进行拼接的子对象。21.2.4子集标签subset该标签用于获取某个集合的子集合,该标签的常用属性有以下几种。id:指定了集合元素的ID。source:指定源集合的名字,为一个字符串。start:为一个Integer类型,指定子集合从源集合的哪个元素开始获取,默认为0,即从第一个元素开始获取。count:为一个Integer类型的值,指定子集合从源集合获取元素的个数,默认为从start开始直到结尾。21.2.5排序标签sort该标签用来对指定的集合进行排序,开发者需要指定自己的排序规则。如果要实现自己的规则,只需要实现Java.util.Comparator接口即可。该标签的常用属性有以下几种。id:指定了集合元素的ID。comparator:必填属性,为一个Comparator类型,用于指定用户自定义的Comparator实例。source:可选属性,为一个String类型值,用来指定被排序的集合名。如果不指定该值,则默认对值栈的栈顶集合进行排序。使用sort标签必须指定comparator属性,如果用户需要开发自己的comparator,只需要实现Java.util.Comparator接口并重写compare()方法即可。21.3数据标签数据标签用来提供各种数据访问的功能,下面对一些常用的数据标签进行介绍。21.3.1控制器调用标签actionaction标签允许程序员在JSP页面中直接调用struts.xml中配置的Action类。在JSP文件中,可以通过action标签的属性引用Action的name和namespace,从而实现调用,并且可以显示调用的结果。name:指定了struts.xml文件中定义的业务控制器的名字,表示调用的是该控制器。executeResult:指定了是否指向所调用Action的result,如果为true,将会显示result结果;否则不显示。ignoreContextParams:用来指定是否将当前页面中的请求参数传入调用的Action。默认为false,即传递请求参数到Acton类。第3个action标签虽然不显示actionTagAction2执行后的result,但是它通过<s:propertyvalue="#attr.

ActionString"/>去显示doDefault()方法设置的ActionString属性值。21.3.2

JavaBean调用标签bean该标签用于创建一个JavaBean实例,在JSP视图中可以通过<s:bean/>标签去创建多个JavaBean类的实例,通过<param.../>参数给该实例的属性赋值,然后在JSP文件中使用该实例。name:必选属性,用来指定调用的JavaBean的路径。例如,com.examp.ch21.User说明调用的是User类。id:可选属性,用来标识实例化后的JavaBean对象。如果指定了id属性,该实例对象就被存入StackContext中,这样在标签外就可以使用它。21.3.3值栈置顶标签push该标签用来把一个值保存在值栈的栈顶,这样可以方便访问。21.3.4调试标签debugdebug标签主要用来进行调试,是Struts2为了调试提供的一个辅助功能。该标签可以在页面上生成一个超链接,单击该链接可以查看StackContext中的内容。21.3.5包含标签includeinclude标签和JSP标签库中的include标签类似,使用它可以把其他的静态页面、JSP页面、Servlet包含到当前的页面中。该标签的value属性指定了被包含文件的名字,<param>标签用来给这个页面传入一些参数。该标签的使用方法和JSP指令元素include的使用方法类似,故这里不再给出示例。21.3.6参数传递标签param该标签一般在其他标签的内部使用,用来给其他的标签传递参数。例如,可以在bean和include标签中使用它。该标签的属性如下所述。name:用于指定参数的名字。value:用于设置参数值,该属性为一个Object类型。21.3.7变量赋值标签set该标签用于在指定的范围内给一个变量设置一个值。该标签主要有以下属性。name:必填属性,用于设置变量的名称。value:可选属性,用于指定变量的值。scope:可选属性,用于指定变量的有效范围,可以是application、session、request、page或者action。如果没有指定,则该变量被放入StackContext中。21.3.8地址标签url该标签用来生成一个URL地址,主要有以下属性。action:用来指定要访问的Acton类的名字,如果没有设置该属性,可以使用value作为URL的地址。value:用来指定生成的URL地址,如果没有设置该属性,可以使用action声明该URL地址。includeParams:可选属性,用来声明是否包含请求参数,其值只能为none、all或者get。namespace:可选属性,用来指定命名空间。method:可选属性:用来指定Action类的方法。encode:可选属性,用来指定是否需要encode请求参数。21.3.9值输出标签property该标签用来输出指定的值,它在JSP文件中经常被使用。该标签的属性如下所述。default:可选属性,如果输出的属性值为null,则用default的值去代替。escape:可选属性,用来指定是否escapeHTML代码。value:可选属性,用来指定需要输出的值,如果没有指定该属性,则输出值栈栈顶的属性值。21.4表单标签Struts2的用户界面标签可以分为表单标签和非表单标签,表单标签在实际开发中用的非常广泛,通过使用它,可以进行用户数据的输入和用户交互等操作。Struts2的表单标签有一个公共父类UIBean,在Struts2的源码中可以找到这个类,目录为src\core\src\main\Java\org\

apache\Struts2\components。所以,所有的表单标签从该父类继承了一些公共的属性,可以简单地分为以下3类。模板相关属性:这些属性主要用来指定表单使用的模板和主题,例如theme、template。JavaScript相关属性:主要是用来在客户端浏览器和用户交互的一些属性。例如onclick、ondbclick、onmousedown、onmouseup等。通用属性:这些属性是所有的表单要素都有的诸如名称、label、值、标题、是否必填等。例如name、label、value、title、required等。21.4.1复选框标签checkbox

该标签用于显示用户输入的复选框元素,下面通过一个例子来说明。21.4.2复选框集合标签checkboxlist

该标签可以根据一个集合属性的值创建一系列的复选框,下面通过一个例子来说明其使用方法。label:该checkboxlist显示的标签。labelposition:用来指定label相对于checkboxlist的位置,top表明在checkboxlist的上面。list:指定集合类型的属性。例如,#user.userlist指向StackContext中user实例的userlist属性,它是一个List类型的属性。listValue:用来指定复选框的提示。例如,listValue="name"将user的name属性作为提示显示在复选框的左侧;listValue="value.age"则将user的age属性作为提示显示在复选框的左侧。listKey:用来指定复选框的值(value)。例如,如果listKey="name",则以user对象的name属性作为复选框的值。21.4.3组合框标签combobox该标签生成一个单行文本框和一个下拉列表框的组合,用户可以选择列表框中的值作为输入也可以在文本框中自由输入值。该标签的属性说明如下所述。list:必填属性,该属性指定的集合类型的变量值将作为下拉列表框的选项。readonly:可选属性,用来指定文本框是否为只读类型,默认为false,如果设置为true,则用户只能在下拉列表框中选择,而不能在文本框中输入。21.4.4日期选择标签datetimepicker

该标签用来生成一个日期、时间下拉选择框,当单击该选择框时,会弹出一个选择窗口,可以在这个窗口中选择日期和时间。使用该标签,可以避免用户输入错误的日期、时间数值,同时该标签可以根据不同用户的需要,显示不同地区的日期和时间格式。该标签常用的属性如下所示。displayFormat:指定日期的显示格式。displayWeeks:指定日历能显示的星期数目。endDate:指定最后可用日期,例如3000-1-1,则该日期后面的日期值不可用。formatlength:指定日期的显示格式,该属性可以是long、short、medium和full一共4个值。language:指定日期显示的Locale,如果是简体中文,则为zh_CN。startDate:指定最早可用的日期,如果为1900-1-1,则该日期前面的日期不可用。toogleType:指定日期选择框出现、隐藏的方式,可以为plain、wipe、explode和fade共4个值。type:指定日期文本框的类型,可以为time或date,分别为时间选择框和日期选择框。value:指定当前的日期和时间,可以使用today表示当前的日期。weekStartOn:指定日期选择框哪一天是一周的第一天,周日是0,周六是6。21.4.5下拉列表框标签selectselect标签用来创建一个下拉列表框,通过其list属性去指定一个集合类型的变量,该变量的值为列表框的选项,其主要属性说明如下所述。listKey:可选属性,用来指定集合类型变量中的某个属性为列表框的value。listValue:可选属性,用于指定集合类型变量的某个属性为列表框的标签。multiple:可选属性,用于指定该列表框是否允许多选。list:必填属性,用于指定一个集合类型的变量作为该列表框的数据源。21.4.6单选框标签radioradio为一个单选框,该框中可以有多个选项,但是用户只能选择其中的一个。radio标签的主要属性和chekboxlist完全相同。例如checkboxlist标签通过list属性指定数据源,radio标签也可以使用list属性指定单选框中的各个选项。由于radio标签的使用方法和checkboxlist类似,这里不再给出示例。21.4.7选项组标签optgroup

该标签用于生成一个下拉列表框的选项组,一个下拉列表框可以包含多个选项组,该标签必须放在select标签中使用。21.4.8其他常用表单标签Struts2还包括一些其他表单标签,如文本区域标签textarea、密码标签password和输入框标签textfield。下面依次介绍这3个标签。1.文本区域标签textarea该标签比较常用,它用来生成一个文本区域以接收多行的文本数据。其主要属性及说明如下所述。label:指定文本区域的标签。name:用来指定文本区域的名字。cols:用来指定文本区域的列数。rows:用来指定文本区域的行数。2.密码标签password该标签用来生成一个密码表单域。用户在输入数据时,该标签会用特定的字符显示用户的输入。由于该标签出现于本书的大多数JSP文件中,这里不再给出示例。3.输入框标签textfield该标签用来生成一个单行文本输入框,在实际的开发中可以使用size属性和maxlength属性来控制该文本框允许输入的最多字符数,以及文本框的显示长度。21.5非表单标签非表单在页面中生成非表单的可视化元素,下面对常见的这类标签进行讲解。21.5.1信息显示标签actionerrror和actionmessage这两个标签都用来输出Action类对应方法产生的信息,actionerror用来输出Action类中getActionErrors()方法返回的信息,actionmessage用来输出Action类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论