Struts2表现层技术.ppt_第1页
Struts2表现层技术.ppt_第2页
Struts2表现层技术.ppt_第3页
Struts2表现层技术.ppt_第4页
Struts2表现层技术.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

企业级JAVA II,软件工程系:聂常红 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 概述,Struts2提供了一个标签库:struts-tags标签库,几乎所有struts2标签都整合到其中,在JSP中使用struts2标签时,需要使用以下代 码引入标签库:,在struts-2.1版本以后的ajax标签使用标签库:struts-dojo-tags,struts2标签库使用OGNL表达式作为基础,极大的提高了对集合、对象的访问能力 struts2标签库支持模板和主题,极大的简化了视图页面的编写,4.2 OGNL表达式语言,OGNL是一种可以方便操作对象属性的开源表达式语言,是struts2的默认表达式语言。主要具有以下优点: 可以方便地访问OGNL上下文和ActionContext 可以方便地操作对象、数组及集合 使用OGNL访问对象的属性的基本格式: propertyName #OpertyName,使用OGNL操作集合: 创建集合: 1)List集合:book1,book2,book3 2)Map集合:#bookl:23,book2:36 使用in、not in元素符判断某个元素是否在指定集合中: 使用选择操作符获取集合的子集: 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.getAttribute(“name”) application:包含当前应用的ServletContext的属性的Map ,#application. name相当于application.getAttribute(“name”) attr: 用于按pagerequest session application顺序访问其属性,#相当于按顺序在以上四个范围(scope)内读取name属性,直到找到为止,2)用于选择和投影集合,如: 选择(子集): books.?#this.price100 投影:books.?#this.price100.bookName 3) 用于构造Map,如:#bookl:23,book2:36,OGNL的“%”操作符的作用,在标签的属性为字符串类型时,可使用%和“”和“”计算OGNL表达式的值,如:label=“%username”、label=“%#session.username”,OGNL的“$”操作符的作用,“$”有两个主要的用途: 用于在国际化资源文件中,引用动作属性及配置项中定义的属性值,如: $min、$max 在Struts2配置文件中,引用动作属性值,如: admin.jsp?type=$type ,UI标签: 表单标签:主要用于生成HTML表单 非表单标签:主要用于在页面中生成一些非表单的可视化元素,如显示信息的标签:actionerror、actionmessage 非UI标签: 逻辑控制标签:主要用于条件、循环等流程控制, 如if、elseif、iterator 数据标签:主要用于数据存储和处理,如 property、bean、text Ajax标签: 主要用于支持Ajax,如显示日期的datetimepicker,4.4 struts2表单及其元素标签,表示什么意思?,表单标签:s:form 常用属性: 例如: ,按钮标签: 提交按钮:s:submit,用于提交表单数据 重置按钮:s:reset,用于返回表单的默认值 常用属性: 例如: ,输入框标签: 文本框标记:s:textfield,用于输入单行文本 密码框标记:s:password,用于输入密码 文本域标记:s:textarea,用于输入多行文本 常用属性: 例如: ,选择框标签: 单选框标签:s:radio,用于在一组选项中互斥选择,即同组中一次只能选择一项 复选框集合标签:s:checkboxlist,设置同一组选项中可作多项选择的选择项,可一次设置多个复选框,常用属性:,例如: ,列表框标签s:select : 作用:用于创建列表框 常用属性:,例如(下拉列表): ,例如(列表): ,s:label 只读标签,用于输出指定属性的信息到浏览器 常用属性: 例如: ,表单标签综合应用示列: 创建一个动作类 创建一个表单参数输入JSP页面,保存目录为WebRoot 创建一个结果显示JSP页面,保存目录为WebRoot 编写配置文件,定义动作包和动作,创建动作FormTagsAction:,(接前):,2. 创建表单参FormTagsInput.jsp:,3. 表单结果显FormTagsResult.jsp:,4. 编写配置文件,定义动作包和动作:,执行结果:,4.5 Struts2数据标签,常用struts2数据标签: s:action s:property s:param s:date s:text s:url,s:action 用于在JSP页面直接调用一个Action 常用属性如下: 例如: ,s:property 用于输出指定属性的值到浏览器 常用属性如下: 例如: ,s:param 用于为其他标签提供参数,经常与s:url等标签一起使用 常用属性如下: 例如: nch ,s:date 用于格式化并输出一个日期 常用属性如下: 例如: (yyyy-MM-dd hh:mm:ss) ,s:text 用于显示资源文件中的指定key的属性值 常用属性如下: 例如:,s:url 用于生成一个URL地址,经常使用s:param标签来提供参数 常用属性: 例如: ,链接标签应用示例:,InputTagsAction.action?username=NCH,ChooseTagsAction.action,SelectTagsAction.action,示例执行结果:,4.6 Struts2逻辑标签,常用struts2逻辑标签: s:if s:elseif s:else s:iterator,s:if 用于进行条件判断,如果条件为真,则执行该标签体内的代码 常用属性如下: 例如: 动作的booleanValue值true ,s:else 与s:if结合使用,如果s:if不满足条件,则执行s:else后面的语句 例如: 动作的booleanValue值true 动作的booleanValue值false ,s:elseif 与s:if结合使用,用于进行条件判断,如果条件为真,则执行该标签体内的代码 常用属性: 例如: 执行elseif部分 ,s:iterator 用于循环遍历集合或数组中的所有元素 一般配合标识来输出所遍历到的元素 常用属性:,逻辑标签综合应用示列:,4.7 非表单UI标签,常用非表单UI标签: s:fielderror s:actionerror s:actionmessage,s:fielderror 用于显示字段级别错误信息 常用属性: 例如: ,s:actionerror 用于输出动作类级别的错误信息 例如: ,4.8 使用主题模板,Struts2的UI标签都是基于主题和模板的,模板是一个UI标签的外在表现形式,一系列样式和视觉效果相似的模板就形成了一个主题,Struts2提供了以下三种主题: simple xhtml css_xhtml S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论