第4讲Struts2表现层技术课件

上传人:痛*** 文档编号:241645193 上传时间:2024-07-12 格式:PPT 页数:54 大小:887.51KB
返回 下载 相关 举报
第4讲Struts2表现层技术课件_第1页
第1页 / 共54页
第4讲Struts2表现层技术课件_第2页
第2页 / 共54页
第4讲Struts2表现层技术课件_第3页
第3页 / 共54页
点击查看更多>>
资源描述
企业级企业级JAVA II 软件工程系:聂常红软件工程系:聂常红 cred_cred_内容回顾:内容回顾:Struts2拦截器的拦截机理?拦截器的拦截机理?Struts2拦截器的配置拦截器的配置自定义自定义Struts2拦截器拦截器第第4讲讲 Struts2的表现层技术的表现层技术4.1 概述概述4.2 OGNL表达式语言表达式语言4.3 Struts2标签类型标签类型4.4 Struts2表单及其元素标签表单及其元素标签4.5 Struts2数据标签数据标签4.6 Struts2逻辑标签逻辑标签4.7 非表单非表单UI标签标签4.8 使用主题模板使用主题模板4.1 概述概述 使用标签可以避免在使用标签可以避免在JSP页面中嵌套大量的页面中嵌套大量的Java脚脚本,极大的提高视图页面的可维护性。本,极大的提高视图页面的可维护性。Struts2提供了一个标签库:提供了一个标签库:struts-tags标签库,标签库,几乎所有几乎所有struts2标签都整合到其中标签都整合到其中在在JSP中使用中使用struts2标签时,需要使用以下代标签时,需要使用以下代码引入标签库:码引入标签库:在在struts-2.1版本以后的版本以后的ajax标签使标签使用标签库:用标签库:struts-dojo-tags Ajax 标签:标签:Struts2主要使用了主要使用了Struts2标签库标签库和和OGNL(Object Ghaph Native Language,对象图导航语言,对象图导航语言)表达式语言表达式语言二项技术来简化表现层方面的开发。二项技术来简化表现层方面的开发。struts2标签库使用标签库使用OGNL表达式作为基础,表达式作为基础,极大的提高了对集合、对象的访问能力极大的提高了对集合、对象的访问能力struts2标签库标签库支持模板和主题,极大的支持模板和主题,极大的简化了视图页面的编写简化了视图页面的编写4.2 OGNL表达式语言表达式语言OGNL是一种可以方便操作对象属性的开是一种可以方便操作对象属性的开源表达式语言,是源表达式语言,是struts2的默认表达式的默认表达式语言。主要具有以下优点:语言。主要具有以下优点:可以方便地访问可以方便地访问OGNL上下文和上下文和ActionContext可以方便地操作对象、数组及集合可以方便地操作对象、数组及集合使用使用OGNL访问对象的属性的基本格式访问对象的属性的基本格式:propertyName#Object.propertyName使用使用OGNL操作集合:操作集合:n创建集合:创建集合:1)List集合:集合:book1,book2,book3 2)Map集合:集合:#bookl:23,book2:36n使用使用in、not in元素符判断某个元素是否在元素符判断某个元素是否在指定集合中:指定集合中:n使用选择操作符获取集合的子集:使用选择操作符获取集合的子集:1)?:获取所有符合条件的子集获取所有符合条件的子集 2):获取符合条件的第一个子集获取符合条件的第一个子集 3)$:获取符合条件的最后一个子集获取符合条件的最后一个子集 例如:例如:person.relative.?#this.gender=“m”使用使用OGNL访问对象和属性时经常需要使访问对象和属性时经常需要使用用#、%、$操作符操作符OGNL的的“#”操作符的作用操作符的作用1)访问)访问OGNL上下文和上下文和Action上下文,此时上下文,此时“#”相当于相当于ActionContext.getContext()ActionContext是是Struts2中中OGNL的上下文的上下文环境。它维护着一个环境。它维护着一个Map的结构的结构,如下图所示如下图所示Action上下文上下文Map对象说明对象说明:ValueStack:为为OGNL 上下文的上下文的根对象,根对象,当当前的前的Action实例总是放到实例总是放到ValueStack,不需不需要使用要使用“#”操作符操作符,可直接访问该对象,可直接访问该对象,其余其余Map对象访问时必须使用对象访问时必须使用“#”.parameters:包含当前包含当前HTTP请求参数的请求参数的Map,#parameters.id相当于相当于request.getParameter(id)request:包含当前包含当前HttpServletRequest的属性的的属性的Map,#request.name相当于相当于request.getAttribute(“name)session:包含当前包含当前HttpSession的属性的的属性的Map#session.name相当于相当于session.getAttribute(“name”)application:包含当前应用的包含当前应用的ServletContext的属性的的属性的Map,#application.name相当于相当于application.getAttribute(“name”)attr:用于按用于按pagerequest session application顺序访问其属性,顺序访问其属性,#attr.name相当于相当于按顺序在以上四个范围(按顺序在以上四个范围(scope)内读取)内读取name属属性,直到找到为止性,直到找到为止2)用于选择和投影集合,如:)用于选择和投影集合,如:n选择选择(子集子集):books.?#this.price100 n投影:投影:books.?#this.price100.bookName3)用于构造用于构造Map,如:,如:#bookl:23,book2:36OGNL的的“%”操作符的作用操作符的作用在标签的属性为字符串类型时,可使用在标签的属性为字符串类型时,可使用%和和“”和和“”计算计算OGNL表达式的值,如:表达式的值,如:label=“%username”、label=“%#session.username”OGNL的的“$”操作符的作用操作符的作用“$”有两个主要的用途有两个主要的用途:用于在用于在国际化资源文件国际化资源文件中,引用动作属性及配中,引用动作属性及配置项中定义的属性值,如:置项中定义的属性值,如:$min、$max在在Struts2配置文件配置文件中,引用动作属性值,如:中,引用动作属性值,如:admin.jsp?type=$type UI标签标签:表单标签表单标签:主要用于生成主要用于生成HTML表单表单非表单标签非表单标签:主要用于在页面中生成一些非表单的可主要用于在页面中生成一些非表单的可视化元素,如显示信息的标签:视化元素,如显示信息的标签:actionerror、actionmessage非非UI标签:标签:逻辑控制标签逻辑控制标签:主要用于条件、循环等流程控制,主要用于条件、循环等流程控制,如如if、elseif、iterator数据标签数据标签:主要用于数据存储和处理,如主要用于数据存储和处理,如 property、bean、textAjax标签:标签:主要用于支持主要用于支持Ajax,如显示日期的,如显示日期的datetimepicker4.3 struts2标签类型标签类型4.4 struts2表单及其元素标签表单及其元素标签属性属性说明说明action指定处理表单所提交信息的动作指定处理表单所提交信息的动作method定义表单信息提交的方法,默认为定义表单信息提交的方法,默认为post表示什么意思?表示什么意思?表单标签:表单标签:s:form常用属性:常用属性:例如:例如:按钮标签:按钮标签:提交按钮:提交按钮:s:submit,用于提交表单数据,用于提交表单数据重置按钮:重置按钮:s:reset,用于返回表单的默认值,用于返回表单的默认值常用属性:常用属性:例如:例如:属性属性说明说明name定义按钮的名字,动作类通过该名字取得按钮的值定义按钮的名字,动作类通过该名字取得按钮的值value定义按钮上的显示字符串定义按钮上的显示字符串属性属性说明说明name定义输入框的名字,动作类通过该名字取得输入框的值定义输入框的名字,动作类通过该名字取得输入框的值label定义定义输入框的描述输入框的描述字符串,默认显示在输入框的左边字符串,默认显示在输入框的左边readonly定义定义输入框的只读属性,输入框的只读属性,true表示输入框不能编辑表示输入框不能编辑rows定义文本域的行数定义文本域的行数cols定义文本域的列数定义文本域的列数输入框标签:输入框标签:文本框标记文本框标记:s:textfield,用于输入单行文本,用于输入单行文本密码框标记密码框标记:s:password,用于输入密码,用于输入密码文本域标记文本域标记:s:textarea,用于输入多行文本,用于输入多行文本常用属性:常用属性:例如:例如:选择框标签:选择框标签:单选框标单选框标签签:s:radio,用于在,用于在一组一组选项选项中中互斥互斥选择,即同组中一次只能选择一项选择,即同组中一次只能选择一项复选框集合标签复选框集合标签:s:checkboxlist,设,设置同一组选项中可作多项选择的选择项,置同一组选项中可作多项选择的选择项,可一次设置多个复选框可一次设置多个复选框常用属性:常用属性:属性属性说明说明name定义选择框的名字,动作类通过该名字取得选择框的值定义选择框的名字,动作类通过该名字取得选择框的值value定义选择框的默认选中项定义选择框的默认选中项list定义选择框各选项。定义选择框各选项。注意:如果注意:如果list属性值不是一个列表属性值不是一个列表集合,而是一个集合,而是一个Java对象或对象或Map对象,则还须指定对象,则还须指定listKey和和listValue两个属性两个属性listKey指定集合元素中的某个属性作为选择框的指定集合元素中的某个属性作为选择框的value。元素为。元素为Java对象时,则指定为该对象的对象时,则指定为该对象的某个属性名某个属性名;元素为;元素为Map对象时,则指定为该对象的对象时,则指定为该对象的key或或valuelistValue指定集合元素中的某个属性作为选择框的指定集合元素中的某个属性作为选择框的label。元素为。元素为Java对象时,则指定为该对象的对象时,则指定为该对象的某个属性名某个属性名;元素为;元素为Map对象时,则指定为该对象的对象时,则指定为该对象的value或或keylabel定义定义选择框的显示选择框的显示labellabelposition 定义定义label的显示位置,默认为居左显示的显示位置,默认为居左显示例如:例如:列表框标签列表框标签s:select:作用:用于创建列表框作用:用于创建列表框常用属性:常用属性:属性属性说明说明name定义列表框的名字,动作类通过该名字取得列表框的值定义列表框的名字,动作类通过该名字取得列表框的值value定义列表的默认选中项定义列表的默认选中项list定义列表的各列表项。定义列表的各列表项。注意:如果注意:如果list属性值不是一个列表集合,而是一属性值不是一个列表集合,而是一个个Java对象或对象或Map对象,则还须指定对象,则还须指定listKey和和listValue两个属性两个属性listKey指定集合元素中的某个属性作为列表项的指定集合元素中的某个属性作为列表项的value,具体应用参见选择框,具体应用参见选择框listValue指定集合元素中的某个属性作为列表项的指定集合元素中的某个属性作为列表项的label,具体应用参见选择框,具体应用参见选择框size定义列表框一次显示的列表项数目,默认为定义列表框一次显示的列表项数目,默认为1multiple定义列表框是否可以多项选择,取值为定义列表框是否可以多项选择,取值为true|false,默认为,默认为falseheaderKey定义列表框标题对应的提交数据定义列表框标题对应的提交数据headerValue定义列表框标题字符串定义列表框标题字符串emptyOption定义列表框第一个有效数据前面是否有空行,取值定义列表框第一个有效数据前面是否有空行,取值true|false,默认为,默认为false例如(下拉列表):例如(下拉列表):效果图效果图例如(列表):例如(列表):效果图效果图s:label只读标签,用于输出指定只读标签,用于输出指定属性属性的信息到浏览的信息到浏览器器常用属性:常用属性:例如:例如:属性属性说明说明name指定需要输出的指定需要输出的属性属性的名字的名字label定义输出的标签字符串定义输出的标签字符串表单标签综合应用示列表单标签综合应用示列:创建一个动作类创建一个动作类创建一个表单参数输入创建一个表单参数输入JSP页面,保存页面,保存目录为目录为WebRoot创建一个结果显示创建一个结果显示JSP页面,保存目录页面,保存目录为为WebRoot编写配置文件,定义动作包和动作编写配置文件,定义动作包和动作1.创建动作创建动作FormTagsAction:(接前接前):2.创建表单参创建表单参FormTagsInput.jsp:3.表单结果显表单结果显FormTagsResult.jsp:4.编写配置文件,定义动作包和动作:编写配置文件,定义动作包和动作:执行结果:执行结果:4.5 Struts2数据标签数据标签常用常用struts2数据标签:数据标签:s:actions:propertys:params:dates:texts:urls:action用于在用于在JSP页面直接调用一个页面直接调用一个Action常用属性如下:常用属性如下:例如:例如:属性属性说明说明name指定标签调用的指定标签调用的Actionnamespace指定标签调用的指定标签调用的Action所在的所在的namespaceexecuteResult指定是否要将指定是否要将Action的处理结果页面包含到本页面的处理结果页面包含到本页面s:property用于输出指定属性的值到浏览器用于输出指定属性的值到浏览器常用属性如下:常用属性如下:例如:例如:属性属性说明说明value指定需要输出值的属性的名字,省略则输出值栈栈顶值指定需要输出值的属性的名字,省略则输出值栈栈顶值default当指定的属性名字不存在时显示的默认值当指定的属性名字不存在时显示的默认值s:param用于为其他标签提供参数,经常与用于为其他标签提供参数,经常与s:url等标等标签一起使用签一起使用常用属性如下:常用属性如下:例如:例如:!-nch-属性属性说明说明name指定参数名字指定参数名字value指定参数的值指定参数的值s:date用于格式化并输出一个日期用于格式化并输出一个日期常用属性如下:常用属性如下:例如:例如:(yyyy-MM-dd hh:mm:ss)属性属性说明说明name必填属性,用于指定要格式化的日期必填属性,用于指定要格式化的日期format指定格式化日期的格式指定格式化日期的格式s:text用于显示用于显示资源文件资源文件中的中的指定指定key的属性值的属性值常用属性如下:常用属性如下:例如:例如:属性属性说明说明name设置资源文件中的指定设置资源文件中的指定key名名s:url用于生成一个用于生成一个URL地址,经常使用地址,经常使用s:param标签来提供参数标签来提供参数常用属性:常用属性:例如:例如:属性属性说明说明action定义超链接的目标端点为某个动作定义超链接的目标端点为某个动作value定义超链接的目标端点为某个定义超链接的目标端点为某个URL地址地址var用于引用所设置的用于引用所设置的URL地址地址链接标签应用示例:链接标签应用示例:InputTagsAction.action?username=NCHChooseTagsAction.actionSelectTagsAction.action示例执行结果示例执行结果:4.6 Struts2逻辑标签逻辑标签常用常用struts2逻辑标签:逻辑标签:s:ifs:elseifs:elses:iterators:if用于进行条件判断,如果条件为真,则执行用于进行条件判断,如果条件为真,则执行该标签体内的代码该标签体内的代码常用属性如下:常用属性如下:例如:例如:动作的动作的booleanValue值值true属性属性说明说明test条件判断属性,取值为条件判断属性,取值为true|falses:else与与s:if结合使用,如果结合使用,如果s:if不满足条件,则执不满足条件,则执行行s:else后面的语句后面的语句例如:例如:动作的动作的booleanValue值值true 动作的动作的booleanValue值值falses:elseif与与s:if结合使用,用于进行条件判断,如果结合使用,用于进行条件判断,如果条件为真,则执行该标签体内的代码条件为真,则执行该标签体内的代码常用属性:常用属性:例如:例如:执行执行elseif部分部分属性属性说明说明test条件判断属性,取值为条件判断属性,取值为true|falses:iterator用于循环遍历集合或数组中的所有元素用于循环遍历集合或数组中的所有元素一般配合一般配合标识来输出所遍标识来输出所遍历到的元素历到的元素常用属性:常用属性:属性属性说明说明value指定需要遍历的集合或数组对象的名字指定需要遍历的集合或数组对象的名字var用于引用集合或数组中元素的名字用于引用集合或数组中元素的名字status指定集合中元素的指定集合中元素的status属性属性例如:例如:指定指定status属性后,每次迭代都会产生一个子属性后,每次迭代都会产生一个子IteratorStatus实例对象,该对象包含以下实例对象,该对象包含以下一些有用方法和属性:一些有用方法和属性:getCount()/count:当前迭代了几个元素当前迭代了几个元素 getIndex()/index:当前迭代元素的索引值当前迭代元素的索引值 isEven()/even:当前迭代元素的索引值是否为偶当前迭代元素的索引值是否为偶数数 isOdd()/odd:当前迭代元素的索引值是否为奇数当前迭代元素的索引值是否为奇数 isFirst()/first:当前迭代元素是否为第一个元素当前迭代元素是否为第一个元素 isLast()/last:当前迭代元素是否为最后一个元素当前迭代元素是否为最后一个元素逻辑逻辑标签综合应用示列标签综合应用示列:4.7 非表单非表单UI标签标签常用非表单常用非表单UI标签:标签:s:fielderrors:actionerrors:actionmessages:fielderror用于显示字段级别错误信息用于显示字段级别错误信息常用属性:常用属性:例如:例如:属性属性说明说明fieldName指定显示某个字段的校验或类型转换错误信息指定显示某个字段的校验或类型转换错误信息,如果不指定该属如果不指定该属性,将显示所有字段级别的错误信息性,将显示所有字段级别的错误信息s:actionerror用于输出动作类级别的错误信息用于输出动作类级别的错误信息例如:例如:s:actionmessage用于输出动作类级别中的信息用于输出动作类级别中的信息例如:例如:4.8 使用主题模板使用主题模板Struts2的的UI标签都是基于主题和标签都是基于主题和模板的,模板是一个模板的,模板是一个UI标签的外在标签的外在表现形式,一系列样式和视觉效果表现形式,一系列样式和视觉效果相似的模板就形成了一个主题相似的模板就形成了一个主题Struts2提供了以下三种主题:提供了以下三种主题:simplexhtmlcss_xhtmlStruts2的默认主题是的默认主题是xhtml,可通,可通过过theme属性修改该默认主题,如属性修改该默认主题,如:思考题思考题Struts2表现层使用了哪两项技术?表现层使用了哪两项技术?在在JSP页面中使用页面中使用Struts2标签前应做什么工作标签前应做什么工作使用使用OGNL表达式语言时可以用哪些符号运算符表达式语言时可以用哪些符号运算符?访问?访问MAP对象需要用哪种符号运算符?对象需要用哪种符号运算符?遍历并输出数组或列表元素需要使用哪些遍历并输出数组或列表元素需要使用哪些Struts2标签?标签?进行条件判断可以使用哪些进行条件判断可以使用哪些Struts2标签,如何标签,如何判断条件是否满足?判断条件是否满足?
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!