struts2标记库.ppt
《struts2标记库.ppt》由会员分享,可在线阅读,更多相关《struts2标记库.ppt(45页珍藏版)》请在咨信网上搜索。
1、Struts2Struts2标记库标记库标记库标记库本讲要点与教学目标【教学要点教学要点教学要点教学要点】1、Struts2标记库的特性标记库的特性 2、Web处理结果的存储方式处理结果的存储方式-值栈(值栈(ValueStack)3、OGNL的应用的应用4、国际化支持、国际化支持【教学目标教学目标教学目标教学目标】了解了解Struts2标记库的特性,理解标记库的特性,理解Web对请求处理对请求处理结果的存储方式与存储特点,掌握结果的存储方式与存储特点,掌握OGNL的应用的应用。2021/5/182Struts2标记库的特性【引言引言】在前面的章节中,我们讲了Action处理客户端的请求,以及
2、处理请求时拦截器所起的作用。(1)在完成了请求处理后还需要做什么?)在完成了请求处理后还需要做什么?-将将处理得到的处理得到的结果数据展示给用户结果数据展示给用户。(2)在)在MVC模型中哪个组件实现结果数据的展示?模型中哪个组件实现结果数据的展示?-视图视图(3)Struts2下的数据如何存储?视图组件如何访问和展示下的数据如何存储?视图组件如何访问和展示这些数据?这些数据?-OGNL与与Struts2标记标记2021/5/183Struts2标记库的特性【标记库概述标记库概述】1、标记库在在JSP页面中除了可以使用页面中除了可以使用HTML的静态标记和的静态标记和JSP2.0规范中的标准动
3、作规范中的标准动作外,还可以引用外部的标记库外,还可以引用外部的标记库,如:,如:JavaEE5.0规范中提供了JSP标准标记库(JSTL)FCKEditor组件中提供了FCKEditor标记库用户也可以开发自己的标记库并使用标记的功能本质上是由该标记关联的一个类实现的标记的功能本质上是由该标记关联的一个类实现的 2、外部标记库的组成一组标记类、一个标签库文件(一组标记类、一个标签库文件(tld文件)文件)阅读阅读struts-tags.tld 3、外部标记库的引用在在JSP中通过指令中通过指令引用引用2021/5/184Web处理结果的存储方式【Web数据存储数据存储】可以分为两部分:(1)
4、Value Stack:值栈,每次在Action组件调用之前,框架都会创建一个ValueStack对象。用来存储与Action请求处理相关的Action组件以及模型对象(2)Stack Context:栈环境,用来存储本次请求相关的Web运行环境信息,如应用上下文、会话和响应等【在在JSP中查看值栈中查看值栈】可以输出整个ActionContext中的数据2021/5/185标记的语言-OGNL OGNLObject Graph Navigation Language(对象图导航语言)是一种功能强大的表达式语言,可以通过简单的表达式来访问Struts2中的数据。OGNL表达式一般与Struts
5、2标记一起使用,访问Web数据分为两种情况(Value Stack/Stack Context):对对Value Stack中的数据中的数据:直接对属性进行访问,如果该属性类型是对:直接对属性进行访问,如果该属性类型是对象,则可以使用点语法获取其内部属性象,则可以使用点语法获取其内部属性 如:如:对对Stack Context中的环境数据中的环境数据:对其属性的访问要求以:对其属性的访问要求以“#”号开始号开始 如:如:2021/5/186Struts2标记的种类w1、控制标记主要包含用于实现分支,循环等流程控制的标签主要包含用于实现分支,循环等流程控制的标签如:如:if elseif els
6、e iteratorw2、数据标记主要提供各种数据访问相关的功能主要提供各种数据访问相关的功能如:如:action property debug bean 等等w3、UI标记表单标记:允许客户端提交信息表单标记:允许客户端提交信息非表单标记:显示错误信息、支持非表单标记:显示错误信息、支持Ajax2021/5/187控制标记wif、elseif、else:实现分支控制功能:实现分支控制功能witerator:将集合进行迭代输出(循环):将集合进行迭代输出(循环)wappend、merge:对集合进行合并操作wgenerator:将一个字符串解析成一个集合wsort:将集合排序wsubset:取
7、集合子集2021/5/188if、elseif、else【描述描述】w1、if可以单独使用,也可与else、elseif搭配使用w2、if和elseif有一个必选类属性test,用来实现逻辑判断,test属性类型是OGNL逻辑表达式w3、标签体的内容可以是JSP网页元素2021/5/189if、elseif、elseage=s:property value=age=s:property value=age=/s:if s:if s:if testtesttest=#parameters.age016#parameters.age016#parameters.age0 儿儿儿童童童 s:else
8、if s:elseif s:elseif testtesttest=#parameters.age060#parameters.age060#parameters.age0 青青青年年年 老年老年老年老年老年老年 2021/5/1810迭代控制标记-iterator【描述描述】w用于遍历集合(java.util.Collection的子类)中的元素:List、Set、Map和数组 w该标签的属性如下:id:指定集合中元素的:指定集合中元素的ID引用引用value:用来指定被迭代输出的集合,通常由:用来指定被迭代输出的集合,通常由OGNL表达式指定表达式指定status:代表当前迭代元素的状态,
9、是:代表当前迭代元素的状态,是IteratorStatus实例实例2021/5/1811IteratorStauts实例包含方法wint getCount():返回当前迭代过元素的总数。wint getIndex():返回当前迭代元素的索引。wboolean isEven():判断当前迭元素是否为偶数行。wboolean isOdd():判断当前迭元素是否为奇数行。wboolean isFirst():判断当前迭元素是否为第一个元素。wboolean isLast():判断当前迭元素是否为最后一个元素wIteratorStauts的这些方法分别对应了count,index,even,odd,f
10、irst,last属性2021/5/1812例1:不使用status属性的迭代【说明】value=1,2,3 value=1,2,3:表示集合,默认为表示集合,默认为ListList|2021/5/1813例2:使用status属性的迭代s:iterator value=s:iterator value=s:if test=s:if test=.even.even s:property value=s:property value=.index+1/.index+1/ s:property value= s:property value= /s:property
11、value=s:property value=.index+1/.index+1/ s:property value= s:property value= /【说明】statusstatus=stst,声明的,声明的stst是一个局部对象,只能在迭代体中使用是一个局部对象,只能在迭代体中使用,其值临时保存在Stack Context中,取其属性时以#号开始2021/5/1814例3:Map类型元素的迭代wMap类型元素常量式为:常量式为:#key1:value1,key2:value2,其它元素其它元素s:iterator s:iterator status=st
12、status=st :2021/5/1815数据标记概述wproperty用于输出用于输出value属性指定的值属性指定的值waction用于在用于在JSP页面中调用一个页面中调用一个Action,如果指定其,如果指定其executeResult,则可以将,则可以将Action处理结果包含到处理结果包含到JSP中中wbean用于创建一个用于创建一个JavaBean实例,如果指定其实例,如果指定其id属性,则可以将创建属性,则可以将创建的实例放到的实例放到stack context中中wparam用于设置一个参数,一般作为其它标记的子标记用于设置一个参数,一般作
13、为其它标记的子标记2021/5/1816数据标记概述wset设置一个新变量,并可以将新变量放到指定的范围中设置一个新变量,并可以将新变量放到指定的范围中wpush用于将某个值放到用于将某个值放到Value Stack的栈顶的栈顶winclude在在JSP页面中包含其他页面中包含其他JSP或或Servlet资源资源wurl用于生成一个用于生成一个URL地址地址wdate用于格式化输出一个日期用于格式化输出一个日期wdebug生成一个调试链接生成一个调试链接2021/5/1817property【property标签属性标签属性】wvalue:指定需要输出的属性值,如果没有指定则默认输出value
14、 stack栈顶对象wdefault:指定默认输出值,当要输出的值为null时输出wescape:是否转义输出内容中的HTML(默认true)true时转义输出:时转义输出:<br>false时直接输出:时直接输出:换行换行s:property value=username default=s:property value=username default=/2021/5/1818action、param标记【action属性】wid:此Action在页面中的引用标识wname:要引用的action的名字wnamespace:action所在的命名空间wexecuteResult:
15、是否将结果包含到当前页中(false)【param属性】wname:要传入的参数名w标记体中的内容以String类型传入的参数值2021/5/1819例6:action标记的使用【案例说明】在index.jsp中引用Action,并将其结果视图的内容包含到当前页中【基本步骤】1、创建Action类:InAction,定义一个属性name,2、在struts.xml中配置Action的名字为in,所在包的namespace=/,视图为in_success.jsp 3、创建in_success.jsp,核心代码被包含的被包含的被包含的actionactionaction视图视图视图:name-s:
16、property value=name default=:name-s:property value=name default=:name-/2021/5/1820例6:action标记的使用4、在index.jsp中加入如下代码:5、分析运行结果,查看Action Context中的数据,是否有inaction1、inaction2两个属性s:actions:action namespace=/namespace=/hello hello hellos:action s:action namespace=/namespace=/2021/5/1821bean标记【属性】wid:用于引用该be
17、an对象,如果指定该属性,框架将其放到Stack Context中wname:指定要实例化的JavaBean类例:例:w测试分析 Stack Context中的信息变化 金毛金毛金毛 输输输出出出BeanBeanBean对对对象的象的象的属属属性:性:性:2021/5/1822set标记【属性】wname:新创建的变量名wid:用于引用该元素说明:如果没有说明:如果没有id,则用,则用name值引用变量,值引用变量,id优先优先wscope:存放的范围application session request page action,默认放置在,默认放置在Stack Context中中wvalue
18、:指定赋给变量的值例:例:输输输出出出变变变量量量dddddd的的的属属属性性性值值值:2021/5/1823date标记【属性】wname:要格式化的日期值wid:引用元素的idwformat:指定日期输出格式今天的日期是(原始格式):今天的日期是(原始格式):今天的日期是(原始格式):今天是(今天是(今天是(MM/dd/yyyyMM/dd/yyyyMM/dd/yyyy):):):2021/5/1824什么是国际化?w在很多国际化的网站中,可根据不同国家地区设置不同语言的版本,以方便不同国家和地区的用户访问,如:清华大学网站 Google网站:http:/.hk/2021/5/1825什么是
19、国际化?【国际化国际化(internationalization,i18n)】是指在设计软件时使软件具有支持多种语言的功能。能够在创建不同语言版本时,无须修改应用程序源代码。【软件国际化的特征软件国际化的特征】(1)可扩展性:)可扩展性:支持新语言时,不需要修改程序,不需要重新编译。通过增加和修改资源文件,可以增加对某种语言的支持、实现订制指定语言的界面显示(2)全球化:)全球化:能够运行于不同区域语言环境中,可以支持不同区域的语言文字和数据信息的输入、输出、显示和存储(3)本地化:)本地化:满足特定区域和语言环境,信息的输入和输出能够符合该区域的使用习惯,例如日期显示格式。2021/5/18
20、26什么是国际化?【国际化涉及的方面国际化涉及的方面】(1)静态的文字显示(2)与区域习惯相关的内容,如:日期时间、邮政编码、电话号码、地址、货币、度量等(3)提示信息,如:警告、错误、操作提示、在线帮助等【国际化的实施国际化的实施】国际化不是在产品功能和代码基本完成后的一个附加阶段,而是应该从软件需求分析开始,并贯穿软件项目实施的全过程2021/5/1827一、Java国际化【相关类相关类】Java国际化主要使用3个类完成:Locale、ResourceBoundle、MessageFormat【Locale类类】对应一个特定区域和语言环境对应一个特定区域和语言环境(1)静态方法:Local
21、e getDefault()(2)静态常量标识符:US、CHINA、JAPAN,CHINESE等(3)获取国家、语言名:getCountry()、getLanguage()(4)获取适于显示的国家、语言名 getDisplayCountry()、getDisplayLanguage()2021/5/1828案例1:Locale类的基本应用publicpublicpublic classclassclass Test Test Test public public public staticstaticstatic voidvoidvoid main(String args)main(Strin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts2 标记
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。