- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
nested标签库
C.5 nested标签库
nested标签库允许相对于一个对象来应用标签。可以使用嵌套属性仿真完全相同的功能(参见第10章的详细解释)。
不幸的是,对于一名程序员来说,嵌套标签库可能会感到好像一个临时凑合的鸡肋。例如,假定想要输出MyBean.getMyPropertyA .getMyPropertyB 的内容。
可能期望能够这样做:
nested标签库提供了 bean:write 以及许多其他标签的替代。所以执行该任务的正确代码是:
bean:write 的替代是 nested:write 。大部分嵌套标签库由替代标签组成。这些都是它们在其他标签库中的对应物的严格复制。
HTML标签的替代:checkbox、errors、file、form、hidden、image、img、link、messages、multibox、options、optionsCollection、password、radio、select、submit、text和textarea。
Bean标签的替代:define、message、size和write。
Logic标签的替代:empty、equal、greaterEqual、greaterThan、iterate、lessEqual、lessThan、match、messagesNotPresent、messagesPresent、notEmpty、notEqual、notMatch、notPresent和present。
因为这些标签是对其正本的严格复制,这里不再重复它们的功能。读者可以参考本附录中的原始标签。除了这些替代标签之外,嵌套标签库还有3个自己的标签需要说明。随后的小节就是完成这个任务。
C.5.1 针对nested标签库的Struts-EL标签
针对nested标签库没有Struts-EL标签。
注意 EL使能的标签是指那些允许使用EL表达式的标签。参看第10章的例子。
C.5.2 nest
这个标签允许嵌套被上升一级。位于当前 nested:nest 标签内部的所有的替代标签将取得和本标签的property属性指示的它们的基础对象的值。
1. 使用限制
无。但是明显地,为了能够运行,需要指定property属性。
2. 属性
仅仅有一个属性:property。它指示在当前隐含的基础对象上的属性,从该对象起,所有的子嵌套标签都会使用它作为基础对象。
3. 示例
假定想要在一个 html:form 内,比方说使用 bean:write 访问一个嵌套属性:
还可以这样使用 nested:nest 和标签:
在这两个代码片断中,隐含的基础对象都是由包围的 html:form 决定的。基础对象正好是与该表单关联的表单bean的实例。如果想要改变基础对象,必须使用 nested:root 。
4. 对应物
无。
C.5.3 writeNesting
这个标签用来将当前嵌套层次输出到响应流(即呈现后得到的HTML页面),或者使其作为一个页面作用域变量来访问。
1. 使用限制
无。
2. 属性
这个标签具有3个属性。
property:这个属性的值将原样地附加到嵌套层次的结尾,用一个点作为前缀。
id:当id被指定时,嵌套级不写出到最后的HTML页面,而是暴露为一个页面作用域字符串变量,id的值充当名称。
filter:这个属性取值为true或者false。如果为true,那么嵌套层次将被编码。例如,号() amp;不管Apache联机文档怎么说,URL编码不会执行,例如,空格不会被编码为%20%,等等。
这些属性最好以JSP例子来说明。
3. 示例
仅当与 nested:nest 标签一起使用时,使用writeNesting才有意义,如下面的例子:
在这个例子中,显示的HTML将包含文本:
如果我们使用了 nested:writeNesting id dummy/ ,那么输出将会是为空。这是因为输出没有被显示在页面中,而是创建了一个名为dummy的页面作用域变量。要显示它,需要使用一个嵌入到与定义该变量的 nested:writeNesting 相同嵌套层次的scriptlet。例如:
注意,如果将scriptlet放在不同的嵌套层次上,会得到一个错误:
最后,propertyattribute只是简单地附加给定的值至嵌套层次的结尾。所以代码片断:
在HTML页面上显示为:
4. 对应物
无。
C.5.4 root
这个标签用来指定一个基础对象。
使用root来指定一个与当前基础对象(同 html:form 标签内部)不同的基础对象,或者如果该对象还不存在,则定义一个基础对象(通常在 html:form 之外)。
1. 使用限制
无。但是明显地,为了能够运行,需要指定n
文档评论(0)