struts_5_标签库.pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Struts第四天主要内容Struts标签UI标签非UI标签主要用于完成流程控制,以及对ValueStack的控制Struts标签标签库的优势标签库的分类使用标签库ValueStackOGNL基础知识控制标签数据标签表单标签非表单标签Struts标签对于一个MVC框架而言,重点是实现两个部分:控制器视图Struts2框架同样也把重点放在了这两个部分:控制器:由Action(以及隐藏的系列拦截器)提供支持视图:通过大量的标签来提供支持为何引入标签Scriptlet脚本的缺点Scriptlet脚本对于快而杂( fast-and-dirty)的编码来说是一种不错的选择,但scriptlet会用Java代码将各种类型的HTML混杂在一起,从而使得程序的调试和设计极其错综复杂。同时scriptlet也不能重用,这常常导致开发者不得不在JSP页面之间进行复制-粘贴操作,进而导致同一段代码出现多个版本。scriptlet还加大了错误处理的难度,因为JSP没有提供干净利落的方式来报告脚本错误标签库的优势无需java语言知识,即可开发JSP页面,可以通过使用简单的标签,完成复杂的表现逻辑避免了JSP页面中嵌套java脚本:有利于大型应用的团队协作开发提高了JSP页面的可读性有利于JSP页面的后期维护及升级标签库的分类UI标签(User Interface,用户界面)主要用于生成HTML元素的标签非UI标签主要用于数据访问、逻辑控制等的标签Ajax标签用于Ajax(Asynchronous Javascript And XML)支持的标签引入标签%@taglib uri=“/struts-tags” prefix=“s”%标签相关文档\struts-2.1.6\docs\docs\tag-reference.html标签库的分类标签库的分类UI标签表单标签主要用于生成HTML页面的form元素,以及普通表单元素的标签非表单标签主要用于生成页面上的树、Tab页等标签非UI标签流程控制标签主要包含用于实现分支、循环等流程控制的标签数据访问标签主要包含用于输出ValueStack中的值,完成国际化等功能的标签标签库使用准备如果开发的web应用使用的是Servlet2.3,以及更早规范,则应该在web.xml中增加标签库的定义。Servlet2.4以上的规范,不需要在web.xml中定义标签库在JSP页面中导入struts标签库ValueStackValueStack是xwork的一个核心技术,ognl及struts的标签库都采用了ValueStack的方式。值栈的含义正如它的名字所表示的那样——对象所组成的栈。OGNL的全称是Object Graph Navigational Language(对象图导航语言),提供了访问值栈中对象的统一方式。Struts 2 使用 ValueStack技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。模型对象和action都被放在值栈ValueStack里ValueStack值栈中的对象构成及其排列顺序如下所示: 1. 临时对象——在执行过程中,临时对象被创建出来并放到了值栈中。举个例子来说,像JSP标签所遍历的对象容器中,当前访问到的值就是临时对象2. 模型对象——如果模型对象正在使用,那么会放在值栈中action的上面3. Action对象——正在被执行的action 4. 固定名称的对象(Named Objects)——这些对象包括有#application, #session, #request, #attr 和 #parameters,以及相应的servlet作用域ValueStack--访问值栈访问值栈:1,使用JSP,Velocity或者Freemarker提供的标签2,使用HTML标签访问值栈中对象的属性;结合表达式使用控制标签(例如if,elseif和iterator);使用data标签(set和push)来控制值栈本身。在使用值栈时,我们无须关心目标对象的作用域。如果要使用名为“name”的属性,直接从值栈中进行查询就可以了。值栈中的每一个元素,都会按照排列顺序依次检查是否拥有该属性。如果有的话,那么就返回对应的值,查询结束。如果没有的话,那么下一个元素就会被访问……直到到达值栈的末尾。这个功能非常强大,我们根本不需要知道所需要的值在什么地方——存在于Action,模型或是HTTP请求中——只要这个值存在,它就会被返回。OGNL基础知识Struts2利用内建的OGNL表达式支持,大大加强了struts2的数据访问功能,Xwork在原有的OGNL的基础上,增加了对ValueStack的支持。

文档评论(0)

wpxuang12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档