资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
让IT教学更简单,让IT学习更有效第四章Struts2的标签库Struts2的控制标签Struts2的数据标签Struts2的模板和主题Struts2的表单标签Struts2的非表单标签让IT教学更简单,让IT学习更有效学习目标了解掌握1 1了解Struts2标签库2 2掌握Struts2常用标签的使用让IT教学更简单,让IT学习更有效目录4.14.1Struts2的标签库概述点击查看本小节知识架构4.24.2Struts2的控制标签点击查看本小节知识架构4.34.3点击查看本小节知识架构Struts2的数据标签4.44.4Struts2的模板和主题4.54.5Struts2的表单标签点击查看本小节知识架构4.64.6Struts2的非表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效Struts2标签库 对于一个MVC框架而言,重点是实现两部分:业务逻辑控制器部分和视图页面部分。Struts2 作为一个优秀的MVC 框架,也把重点放在了这两部分上。控制器主要由Action来提供支持,而视图则是由大量的标签来提供支持。本章将针对Struts2标签库的构成和常用标签的使用进行详细的讲解。4.1Struts2标签库概述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 在JavaWeb中,Struts2标签库是一个比较完善,而且功能强大的标签库,它将所有标签都统一到一个标签库中,从而简化了标签的使用,它还提供主题和模板的支持,极大地简化了视图页面代码的编写,同时它还提供对Ajax的支持,大大的丰富了视图的表现效果。与JSTL(JSP Standard Library,JSP标准标签库)相比,Struts2 标签库更加易用和强大。标签库介绍4.1Struts2标签库概述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效Struts2Struts2标签库的分类标签库的分类早期的JSP页面需要嵌入大量的Java脚本来进行输出,这样使得一个简单的JSP页面加入了大量的代码,不利于代码的可维护性和可读性。随着技术的发展,逐渐的采用标签库来进行JSP页面的开发,这使得JSP页面能够在很短的时间内开发完成,而且代码通俗易懂,大大的方便了开发者,Struts2的标签库就是这样发展起来的。Struts2框架对整个标签库进行了分类,按其功能大致可分为两类,如下图 所示。4.1Struts2标签库概述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效由上图可以看出,Struts2标签库主要分为两类:普通标签和UI标签。普通标签主要是在页面生成时,控制执行的流程。UI标签则是以丰富而可复用的HTML文件来显示数据。普通标签又分为控制标签(Control Tags)和数据标签(Data Tags)。控制标签用来完成条件逻辑、循环逻辑的控制,也可用来做集合的操作。数据标签用来输出后台的数据和完成其他数据访问功能。UI标签又分为表单标签(Form Tags)、非表单标签(Non-Form Tags)和Ajax标签。表单标签主要用来生成HTML页面中的表单元素,非表单标签主要用来生成HTML的标签及输出Action中封装的信息等。Ajax标签主要用来提供Ajax技术支持。4.1Struts2标签库概述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效Struts2Struts2标签的使用标签的使用Struts2标签库被定义在struts-tags.tld文件中,读者可以在struts-core-2.3.24.jar中的META-INF目录下找到它。要使用struts2的标签库,一般只需在JSP文件使用taglib指令导入Struts2标签库,具体代码如下:4.1Struts2标签库概述在上述代码中,taglib指令的uri属性用于指定引入标签库描述符文件的URI,prefix属性用于指定引入标签库描述符文件的前缀。需要注意的是,在JSP 文件中,所有的Struts2标签库的建议使用“s”前缀。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效4.2Struts2的控制标签 在程序开发中,经常要用流程控制实现分支、循环等操作,为此,Struts2标签库中提供了控制标签,常用的逻辑控制标签主要包括:、和等。本节将针对这四个常用标签进行详细的讲解。概概 述述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效、标签标签与多数编程语言中的if、elseif和else语句的功能类似,、这三个标签用于程序的分支逻辑控制。其中,只有标签可以单独使用,而、都必须与标签结合使用,其语法格式如下所示:标签体标签体标签体4.2Struts2的控制标签上述语法格式中,、和标签必须指定test属性,该属性用于设置标签的判断条件,其值为boolean型的条件表达式。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签主要用于对集合中的数据进行迭代,它可以根据条件遍历集合中的数据。标签的属性及相关说明如下表所示。在上表中,如果在标签中指定status属性,那么通过该属性可以获取迭代过程中的状态信息,如:元素数、当前索引值等。4.2Struts2的控制标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效通过status属性获取信息的方法如下表所示(假设其属性值为st)。4.2Struts2的控制标签案例代码 为了让读者更好的掌握、和标签的使用,接下来,通过一个案例来演示,请查看教材文件4-1。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效4.3Struts2的数据标签 在Struts2标签库中,数据标签主要用于各种数据访问相关的功能以及Action的调用等。常用的数据标签有、等。概概 述述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用于输出指定的值,通常输出的是value属性指定的值, 标签的属性及属性说明如下所示:id:可选属性,指定该元素的标识。default:可选属性,如果要输出的属性值为null,则显示default属性的指定值。escape:可选属性,指定是否忽略HTML代码。value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值 (关于值栈内容会在下一 节进行讲解)。4.3Struts2的数据标签案例代码接下来,编写一个propertyTags.jsp页面,来演示porperty标签的使用,请查看教材文件4-2。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 标签标签标签用于构造HTML页面中的超链接,其使用方式与HTML中的标签类似。标签的属性及相关说明如下表所示。4.3Struts2的数据标签标签的使用格式,如下所示:itcast.cn让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 标签标签标签用于在调试程序时输出更多的调试信息,主要输出ValueStack和StackContext中的信息,该标签只有一个id属性,且一般不使用。4.3Struts2的数据标签在使用debug标签后,网页中会生成一个Debug的链接,单击该链接,网页中将输出各种服务器对象的信息,如右图所示。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 标签标签标签用于在当前页面中包含另一个页面(或Servlet),类似于JSP中的和指令。该标签有一个value属性,用来指定被包含的JSP或Servlet等资源文件。另外,在include标签中可以指定多个子标签,用于将多个参数传入被包含的JSP页面或者Servlet。4.3Struts2的数据标签案例代码 接下来,编写两个jsp页面,演示include标签的使用,请查看教材文件4-3&4-4。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签param标签通常要与其它标签合起来使用,主要用来为其它标签提供参数。上一小节中,使用include标签时,就使用了param标签给被包含的页面传递参数。param标签有两种用法,一种是使用value属性指定参数值,用法如下所示:4.3Struts2的数据标签param标签的另一种用法是通过标签体来指定参数值,用法如下所示:red两种语法的功能一样,不同点在于使用value属性来设置参数值时,需要加单引号,而使用标签体设置参数值时,则不需要加单引号。注意:注意: 在使用value属性指定参数时,如果不添加单引号,则表示该值为一个引用对象,如果该对象不存在,则为其属性赋值为null。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效4.4Struts2的模板和主题 Struts2 的UI标签都是基于模板和主题的。所谓模板,就是一些代码,Struts2 标签使用这些代码渲染生成相应的HTML代码。模板是一个UI标签的外在表现形式,并且每个标签都会有自己对应的模板。如果为所有的UI 标签提供样式和视觉效果相似的模板,那么这一系列的模板就形成了一个主题。知识点概述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效Struts2 默认提供了4种主题,分别为simple、xhtml、css_xhtml和Ajax。simple 主题:这是最简单的主题,使用该主题时,每个UI标签只生成最基本的HTML元素,没有任何附加功能。xhtml 主题:这是Struts2 的默认主题,它对simple主题进行了扩展,提供了布局功能、Label显示名称、以及与验证框架和国际化框架的集成。css_xhtml :该主题是对xhtml的扩展,在xhtml的基础之上添加对CSS的支持和控制。Ajax :继承自xhtml,提供Ajax支持。这4种内建主题中,xhtml为默认主题,但xhtml有一定的局限性。因为它使用表格进行布局,并且只支持每一行放一个表单项,这样一来,一旦遇到复杂的页面布局,xhtml就难以胜任了。此时,就需要改变Struts2 的默认主题。4.4Struts2的模板和主题让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效通常,通过设置常量struts.ui.theme,来改变默认主题,具体做法是在struts.xml或者struts.properties文件中增加相应的配置。比如想要设置使用simple的主题,那么需要在struts.xml中增加如下配置:4.4Struts2的模板和主题或者在struts.properties文件中增加如下配置:让IT教学更简单,让IT学习更有效4.5Struts2的表单标签 Struts2的表单标签用来向服务器提交用户输入的信息,绝大多数的表单标签都有其对应的HTML标签,通过表单标签可以简化表单开发,还可以实现HTML中难以实现的功能。读者可以结合HTML的标签对比学习Struts2 的表单标签。概概 述述让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效表单标签的公共属性表单标签的公共属性Struts2的表单标签用来向服务器提交用户输入信息,在org.apache.struts2.components包中都有一个对应的类,所有表单标签对应的类都继承自UIBean类。UIBean类提供了一组公共属性,这些属性是完全通用的。如下表所示。4.5Struts2的表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效除了这些常用的通用属性外,还有很多其它属性。由于篇幅有限,这里就不一一列举。需要注意的是,表单标签的name和value属性基本等同于HTML组件的name和value,但是也有些不同的地方:表单标签在生成HTML的时候,如果标签没有设置value属性的话,就会从值栈中按照name获取相应的值,把这个值设置成的HTML组件的value。简单的说,就是表单标签的value在生成HTML的时候会自动设置值,其值从值栈中获取。关于值栈问题将在下一章节进行讲解。4.5Struts2的表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 标签标签标签用来呈现HTML语言中的表单元素,其常用属性如下表所示。4.5Struts2的表单标签在使用标签时,一般会包含其它的表单元素,如textfield,radio等标签,通过这些表单元素对应的name属性,在提交表单时,将其作为参数传入Struts2 框架进行处理。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 标签标签标签主要用于产生HTML中的提交按钮,该表单元素中,可以指定提交时的Action对应的方法。通常与标签一起使用,该标签的常用属性如下表所示。4.5Struts2的表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效和和标签标签和标签的作用比较相似,都用于创建文本框,区别在于创建的是单行文本框,而创建的是多行文本框。二者使用也比较简单,一般指定其label和name属性即可。标签的用法如下所示:4.5Struts2的表单标签标签的用法如下所示:name属性用来指定单行/多行文本框的名称,在Action中,通过该属性获取单行/多行文本框的值。其value属性用来指定单行/多行文本框的当前值。此外,标签可以通过使用cols和rows属性分别指定多行文本框的列数和行数。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签4.5Struts2的表单标签标签用于创建一个密码输入框,它可以生成HTML中的标签,常用于在登录表单中输入用户的登录密码。标签的常用属性说明如下表所示。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效4.5Struts2的表单标签需要注意的是Struts2的password标签与HTML的标签有小小的不同,标签只要设置value属性就可以将value属性的值作为默认显示值;而Struts2的标签除了要设置value属性,还要设置showPassword属性为true。标签的使用方法如下所示:让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标标签签4.5Struts2的表单标签标签用于创建单选按钮,生成HTML中的标签。标签的常用属性说明如下表所示。在上表中的三个属性必须要配合使用,由list属性指定从集合中获得元素,由listKey属性指定获得元素之后使用元素的哪个属性作为生成的value属性,由listValue属性指定生成的后给用户看的文字。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效4.5Struts2的表单标签案例代码 接下来,通过一个简单的用户注册案例,来演示标签、标签、标签和标签的使用,请查看教材文件4-5。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用于创建复选框,产生HTML中的标签。该标签通过name属性指定其name,然后通过用户操作返回一个boolean类型的值。标签的属性说明如表4-9所示。标签的使用方法如下所示:4.5Struts2的表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效上述代码中,value属性值是一个“假值”,用来表示复选框是否被选中,如果value的值为“true”,其选中框为选中状态,默认情况下value的值为“false”,选中框为不选中状态。fieldValue属性值才是真值,表示提交表单时name对应的值。4.5Struts2的表单标签案例代码 接下来,通过一个案例来演示标签的使用,请查看教材文件4-6。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用于一次性创建多个复选框,用户可以选择创建零到多个,它用来产生一组标签,标签的常用属性说明如下表所示。需要注意的是,listKey和listValue 属性主要用在集合中,其中存放的是javabean,可以使用这两个属性从 javabean众多属性中筛选需要的值。4.5Struts2的表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效4.5Struts2的表单标签案例代码 接下来,通过一个案例来演示标签的使用,请查看教材文件4-7。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用于创建一个下拉列表框,生成HTML中的标签。标签的常用属性说明如下表所示。4.5Struts2的表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效在上表中,headerKey和headerValue属性需要同时使用,可以在所有的真实选项之前加一项作为标题项。比如选择省份的时候,可以在所有的具体省份之前加一项“请选择”,这个项不作为备选的值。multiple属性和size属性类似于HTML的标签,size属性可以让下拉框同时显示多个值,multiple属性让用户同时选择多个值,只是在后台的Action接收下拉框值的时候,不能使用String类型,而应该使用String或者List。4.5Struts2的表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用来生成选项组,经常与标签联用。在下拉列表框中可以包含多个选项组,所以标签能够包含多个标签。标签的label属性表示选项组的组名,选项组的组名是不能被选中的。4.5Struts2的表单标签案例代码接下来,通过一个案例来演示标签的使用,请查看教材文件4-8。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用于创建一个文件选择框,生成HTML中的标签,该标签常用的属性及其描述如下表所示。4.5Struts2的表单标签标签的一般用法如下代码所示:让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用于创建隐藏表单元素,生成HTML中的隐藏域标签。该标签在页面上没有任何显示,可以保存或交换数据。其使用也比较简单,通常只设置其name和value属性即可。其一般用法如下所示:4.5Struts2的表单标签该标签主要用来需要提交的表单传值时使用,比如需要提交表单时,要传一个值到请求参数中去,就可以使用该标签。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效标签标签标签用来创建一个重置按钮,会生成HTML中的标签,该标签的使用比较简单,其常用属性为name和value。其中,name属性用于指定重置按钮的名称,在Action中,可以通过name属性来获取重置按钮的值,value属性用于显示按钮的值。该标签的用法如下所示:4.5Struts2的表单标签案例代码接下来,通过一个页面注册的案例来演示Struts2中表单标签的使用,请查看教材文件4-9。让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效Struts2的非表单标签主要用来在页面中生成非表单的可视化元素,输出在Action中封装的信息,如输出一些错误提示信息等,这些标签给程序开发带来了很多便捷。如、和标签,分别用于显示动作错误信息、动作信息和字段错误信息。如果信息为空,则不显示。各标签的具体功能介绍,如下所示:标签:如果action实例的getActionError()方法返回不为null,则该标签负责输出该方法返回的系列错误。标签:如果action实例的getActionMessage()方法返回不为null,则该标签负责输出该方法返回的系列消息。标签:如果Action实例存在表单域的类型转换错误、校验错误,则该标签负责输出这些错误提示。4.6Struts2的非表单标签让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效案例代码接下来,通过一个具体案例来演示这三个标签的使用,请查看教材文件4-10&4-11。4.6Struts2的非表单标签让IT教学更简单,让IT学习更有效4.7本章小结 本章主要讲解了Struts2标签库中常用的标签,其中详细讲解了Struts2的控制标签、数据标签、表单标签和非表单标签中的常用标签的作用和意义,并用详细的代码演示了这些标签的使用效果。 通过本章的学习,读者可以很好的运用Struts2标签库的标签开发出功能强大的视图页面。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号