- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章:Struts2 标签库 本章内容 5.1 标签库概述 5.2 非UI标签 5.3 UI标签 5.1 标签库概述 在早期的WEB开发中,JSP视图控制和显示技术主要依靠Java脚本来实现,这样一来,JSP页面重新嵌入了大量的Java脚本代码,给开发带来了极大的不方便。 从JSP1.1规范后,JSP增加了自定义标签库的支持。标签库是一种组件技术,通过标签库,可以将复杂的Java脚本代码封装在组件中,开发者只需要使用简单的代码就可以实现复杂的Java脚本功能。提供了Java脚本的复用性,提高了开发者的开发效率。 Struts2标签库相对struts1.x进行了巨大的改进,支持OGNL表达式,不再依赖任何表现层技术。 5.1.1 标签的分类 5.1.1 标签的分类 Struts2框架的标签库可以分为以下三类: 用户界面标签(UI标签):主要用来生成HTML元素的标签。 表单标签:主要用于生成HTML页面的FORM元素,以及普通表单元素的标签。 非表单标签:主要用于生成页面上的tree,Tab页等。 非用户界面标签(非UI标签):主要用于数据访问,逻辑控制。 数据访问标签:主要包含用于输出值栈(ValueStack)中的值,完成国际化等功能的标签。 流程控制标签:主要包含用于实现分支,循环等流程控制的标签。 AJAX标签:用于支持Ajax效果 5.1.2 标签的使用 我们可以在struts2-core-2.0.11.jar压缩文件的META-INF目录下找到struts-tags.tld文件,这个文件里定义了Struts2的标签。 要在jsp中使用Struts2的标志,先要指明标志的引入。通过jsp的代码的顶部加入以下的代码: 5.1.3 标签的语法 Struts2的标签都支持动态数据的访问,标签的属性都可以使用OGNL表达式,struts2标签的属性具有类型,这些类型可以简单地分为字符串类型和非字符串类型,对于字符串类型的属性,如果要访问动态数据,需要使用%{… }这样的语法, 例如:s:include value=“%{ url }” / Include标签的value属性是字符串类型,Struts2将对这个属性进行解析,查找符合%{…}样式的字符串,然后将花括号之间的内容作为OGNL表达式进行求值。如果属性中没有%{…}样式的字符串,那么属性的值将被直接看成是字符串数据。 例如:s:include value=“urlTag.action” / 对于非字符串类型的属性值,将直接作为OGNL表达式进行求值。 例如:s:property value=“username”/ property标签的value属性是Object类型,它的值username将作为OGNL表达式进行求值,结果是值栈中位于栈顶的对象的username属性的值。如果要为非字符串类型的属性直接指定字符串数据,那么需要使用OGNL中的字符串常量,即用单引号(‘)或双引号(“)将字符串括起来。 例如:s:property value=“’zhangsan‘”/ value属性的值‘zhangsan’作为字符串常量,计算结果就是zhangsan,因此输出zhangsan。 5.1.3 标签的语法 除上述用法之外,也可以使用%{…}这样的语法来指定字符串常量。 例如: s:property value=“%{ ‘zhangsan’ }”/ 在这种情况下,%{ }将被忽略,花括号中的内容将作为表达式被计算。 总结一下,struts2标签的属性按照下列的三个规则进行计算。 (1)所有的字符串属性类型都会解析“%{…}”这样的语法。 (2)所有的非字符属性类型都不会被解析,而是直接被看作一个OGNL表达式进行求值 (3)对于第二个规则的例外情况是,如果非字符串属性使用了“%{…}”语法,那么%{…}将被忽略,花括号中的内容将作为表达式计算。 如果大家在使用标签时, 忘记了某个属性是字符串类型,还是非字符串类型,那么有一个简单的方法,那就是不考虑它是什么类型,统一使用“%{…}”语法。 第五章:Struts2 标签库 本章内容 5.1 标签库概述 5.2 非UI标签 5.3 UI标签 5.2 非UI标签 Struts2中非UI标签可以分为二类:控制标签和数据标签。 控制标签用于呈现页面时控制执行流程,数据标签用于访问值栈中的数据。 数据标签:用于访问ActionContext和值栈中的数据。数据标签包括: property set push param bean action include url a i18n text date debug 控制标签:用于在呈现结果页面时控制程序的执行流程,根据程序执行的状态输出不
文档评论(0)