struts2标记库.ppt
《struts2标记库.ppt》由会员分享,可在线阅读,更多相关《struts2标记库.ppt(45页珍藏版)》请在三一办公上搜索。
1、Struts2 标记库,本讲要点与教学目标,【教学要点】1、Struts2标记库的特性 2、Web处理结果的存储方式-值栈(ValueStack)3、OGNL的应用4、国际化支持【教学目标】了解Struts2标记库的特性,理解Web对请求处理结果的存储方式与存储特点,掌握OGNL的应用。,Struts2标记库的特性,【引言】在前面的章节中,我们讲了Action处理客户端的请求,以及处理请求时拦截器所起的作用。(1)在完成了请求处理后还需要做什么?-将处理得到的结果数据展示给用户。(2)在MVC模型中哪个组件实现结果数据的展示?-视图(3)Struts2下的数据如何存储?视图组件如何访问和展示这
2、些数据?-OGNL与Struts2标记,Struts2标记库的特性,【标记库概述】1、标记库在JSP页面中除了可以使用HTML的静态标记和JSP2.0规范中的标准动作外,还可以引用外部的标记库,如:JavaEE5.0规范中提供了JSP标准标记库(JSTL)FCKEditor组件中提供了FCKEditor标记库用户也可以开发自己的标记库并使用标记的功能本质上是由该标记关联的一个类实现的 2、外部标记库的组成一组标记类、一个标签库文件(tld文件)阅读struts-tags.tld 3、外部标记库的引用在JSP中通过指令引用,Web处理结果的存储方式,【Web数据存储】可以分为两部分:(1)Val
3、ue Stack:值栈,每次在Action组件调用之前,框架都会创建一个ValueStack对象。用来存储与Action请求处理相关的Action组件以及模型对象(2)Stack Context:栈环境,用来存储本次请求相关的Web运行环境信息,如应用上下文、会话和响应等【在JSP中查看值栈】可以输出整个ActionContext中的数据,标记的语言-OGNL,OGNLObject Graph Navigation Language(对象图导航语言)是一种功能强大的表达式语言,可以通过简单的表达式来访问Struts2中的数据。OGNL表达式一般与Struts2标记一起使用,访问Web数据分为两
4、种情况(Value Stack/Stack Context):对Value Stack中的数据:直接对属性进行访问,如果该属性类型是对象,则可以使用点语法获取其内部属性 如:对Stack Context中的环境数据:对其属性的访问要求以“#”号开始 如:,Struts2标记的种类,1、控制标记主要包含用于实现分支,循环等流程控制的标签如:if elseif else iterator2、数据标记主要提供各种数据访问相关的功能如:action property debug bean 等3、UI标记表单标记:允许客户端提交信息非表单标记:显示错误信息、支持Ajax,控制标记,if、elseif、e
5、lse:实现分支控制功能iterator:将集合进行迭代输出(循环)append、merge:对集合进行合并操作generator:将一个字符串解析成一个集合sort:将集合排序subset:取集合子集,if、elseif、else,【描述】1、if可以单独使用,也可与else、elseif搭配使用2、if和elseif有一个必选类属性test,用来实现逻辑判断,test属性类型是OGNL逻辑表达式3、标签体的内容可以是JSP网页元素,if、elseif、else,age=儿童 青年 老年,迭代控制标记-iterator,【描述】用于遍历集合(的子类)中的元素:List、Set、Map和数组
6、该标签的属性如下:id:指定集合中元素的ID引用value:用来指定被迭代输出的集合,通常由OGNL表达式指定status:代表当前迭代元素的状态,是IteratorStatus实例,IteratorStauts实例包含方法,int getCount():返回当前迭代过元素的总数。int getIndex():返回当前迭代元素的索引。boolean isEven():判断当前迭元素是否为偶数行。boolean isOdd():判断当前迭元素是否为奇数行。boolean isFirst():判断当前迭元素是否为第一个元素。boolean isLast():判断当前迭元素是否为最后一个元素Iter
7、atorStauts的这些方法分别对应了count,index,even,odd,first,last属性,例1:不使用status属性的迭代,【说明】value=1,2,3:表示集合,默认为List,|,例2:使用status属性的迭代,【说明】status=st,声明的st是一个局部对象,只能在迭代体中使用,其值临时保存在Stack Context中,取其属性时以#号开始,例3:Map类型元素的迭代,Map类型元素常量式为:#key1:value1,key2:value2,其它元素,:,数据标记概述,property用于输出value属性指定的值action用于在JSP页面中调用一个Act
8、ion,如果指定其executeResult,则可以将Action处理结果包含到JSP中bean用于创建一个JavaBean实例,如果指定其id属性,则可以将创建的实例放到stack context中param用于设置一个参数,一般作为其它标记的子标记,数据标记概述,set设置一个新变量,并可以将新变量放到指定的范围中push用于将某个值放到Value Stack的栈顶include在JSP页面中包含其他JSP或Servlet资源url用于生成一个URL地址date用于格式化输出一个日期debug生成一个调试链接,property,【property标签属性】value:指定需要输出的属性值,
9、如果没有指定则默认输出value stack栈顶对象default:指定默认输出值,当要输出的值为null时输出escape:是否转义输出内容中的HTML(默认true)true时转义输出:false时直接输出:换行,action、param标记,【action属性】id:此Action在页面中的引用标识name:要引用的action的名字namespace:action所在的命名空间executeResult:是否将结果包含到当前页中(false)【param属性】name:要传入的参数名标记体中的内容以String类型传入的参数值,例6:action标记的使用,【案例说明】在index.j
10、sp中引用Action,并将其结果视图的内容包含到当前页中【基本步骤】1、创建Action类:InAction,定义一个属性name,2、在struts.xml中配置Action的名字为in,所在包的namespace=/,视图为in_success.jsp 3、创建in_success.jsp,核心代码,被包含的action视图:name-,例6:action标记的使用,4、在index.jsp中加入如下代码:5、分析运行结果,查看Action Context中的数据,是否有inaction1、inaction2两个属性,hello,bean标记,【属性】id:用于引用该bean对象,如果指
11、定该属性,框架将其放到Stack Context中name:指定要实例化的JavaBean类例:测试分析 Stack Context中的信息变化,金毛 输出Bean对象的属性:,set标记,【属性】name:新创建的变量名id:用于引用该元素说明:如果没有id,则用name值引用变量,id优先scope:存放的范围application session request page action,默认放置在Stack Context中value:指定赋给变量的值例:,输出变量dd的属性值:,date标记,【属性】name:要格式化的日期值id:引用元素的idformat:指定日期输出格式,今天的日
12、期是(原始格式):今天是(MM/dd/yyyy):,什么是国际化?,在很多国际化的网站中,可根据不同国家地区设置不同语言的版本,以方便不同国家和地区的用户访问,如:清华大学网站 Google网站:,什么是国际化?,【国际化(internationalization,i18n)】是指在设计软件时使软件具有支持多种语言的功能。能够在创建不同语言版本时,无须修改应用程序源代码。【软件国际化的特征】(1)可扩展性:支持新语言时,不需要修改程序,不需要重新编译。通过增加和修改资源文件,可以增加对某种语言的支持、实现订制指定语言的界面显示(2)全球化:能够运行于不同区域语言环境中,可以支持不同区域的语言文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts2 标记
链接地址:https://www.31ppt.com/p-5449647.html