第6章 Struts2的View组件.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 Struts2的View组件 MVC中视图(View)也是一个非常重要的因素,尤其在Web应用开发里,网页的开发在总工作量的比重非常大。Struts2 在视图方面提供了强大的支持。主要包括3个方面:提供了丰富的标签库资源、对解释语言支持和对模板的支持。在Struts2中可以以很少量的代码实现复杂的网页,而且代码的重用率大幅度提高。 6.1 EL简介 EL 全名为Expression Language,它原本是JSTL为方便存取数据所自定义的语言。(JSTL是JSP Standard Tag Library的缩写,翻译为JSP标准标签库),当时EL只能在JSTL标签中使用,到了JSP 2.0 之后,EL已经正式纳入成为标准规范之一。因此,只要是支持Servlet 2.4 / JSP2.0 的Container,就都可以在JSP网页中直接使用EL了。使用方法如: pHi ! ${ username }/p 6.1.1 EL语法 EL 语法很简单,它最大的特点就是使用方便。所有EL都是以 “${”为起始、以“}”为结尾的,如: ${sessionScope.user.sex} 上述EL范例的意思是:从Session的范围中,取得用户的性别。假若依照之前JSP Scriptlet的写法如下: % User user = (User)session.getAttribute(user); String sex = user.getSex( ); % 6.1.2 EL 变量 EL存取变量数据的方法很简单,例如: ${username} 它的意思是取出某一范围中名称为username的变量。因为并没有指定哪一个范围的username,所以它的默认值会先从Page范围找,假如找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。 6.1.3 自动转变类型 EL 除了提供方便存取变量的语法之外,它另外一个方便的功能就是:自动转变类型,来看下面这个例子,把页面传来的参数count加20。 ${param.count + 20} 假若窗体传来count的值为10时,那么上面的结果为30。在JSP中获取用户输入,再从窗体所传来的参数值,包括链接中的参数值它们的类型一律是String,所以当接收之后,必须再将它转为其他类型,如:int、float 等等,然后才能执行一些数学运算。 6.1.4 EL 隐含对象(内置对象) 本书曾经介绍过9个JSP 隐含对象,而EL本身也有自己的隐含对象,这些隐含对象往往给开发人员带来极大的便利。EL 隐含对象总共有11 个, 6.1.5 EL保留字 EL 的保留字如表,所谓保留字的意思是指变量在命名时,应该避开上述的名字,以免程序编译时发生错误。 6.2 使用通用标签 Struts2的标签库与先取版本有很大进步,不再仅依赖于JSP标签,还包括FreeMarker和Velocity。标签可以分为两类:通用标签和UI标签(也称为HTML标签)。在使用的时候与使用JSP自定义标签相同第一步就是要导入标签库,Struts2的引用方法简单如下: %@ taglib prefix=s uri=/struts-tags% 而在Struts1.x版本中,标签库是分离的要分别导入。 %@ taglib uri=“struts-html.tld” prefix=“html”% %@ taglib uri=“struts-bean.tld”prefix=“bean”% %@ taglib uri=“struts-logic.tld”prefix=“logic”% 6.2.1 标签语法 Struts2的标签语法非常容易理解,所有的属性最初都是被设置为字符串的,然后它们会解析 %{ }语法,任何大括号之间的内容都会基于value stack求值。注意3个规范: (1)所有String类型属性的都会解析%{ } 中间的字符。 (2)所有非字符串类型属性都不会解析,但是会直接被当作一个OGNL表达式求值。 (3)对第二个规则的例外情况是如果非字符串属性以“%{” 开始并以“ } ”结束, 这些字符在对表达式求值之前会被截取出来。 6.2.2 控制标签(Control Tags) 控制标签提供操纵集合以及有条件的生成内容的功能,与Struts1.x中的逻辑标签功能基本相同,但使用方法简单的许多,它包括9个标签。 (1)if、else if、else属于条件控制标签,用来控制内容生成与否,这3个标签经常一起使用,使用方法与编程语言中的用法很类似。(2)Iterator标签的作用是迭代处理一

文档评论(0)

考试教学资料 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档