版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
企业级JAVAII
软件工程系:聂常红
cred_n@163.com内容回顾:Struts2拦截器的拦截机理?Struts2拦截器的配置自定义Struts2拦截器第4讲Struts2的表现层技术4.1概述4.2OGNL表达式语言4.3Struts2标签类型4.4Struts2表单及其元素标签4.5Struts2数据标签4.6Struts2逻辑标签4.7非表单UI标签4.8使用主题模板4.1概述
使用标签可以避免在JSP页面中嵌套大量的Java脚本,极大的提高视图页面的可维护性。<%@taglibprefix="s"uri="/struts-tags"%>Struts2提供了一个标签库:struts-tags标签库,几乎所有struts2标签都整合到其中在JSP中使用struts2标签时,需要使用以下代码引入标签库:在struts-2.1版本以后的ajax标签使用标签库:struts-dojo-tags
<%@taglibprefix="sx"uri="/struts-dojo-tags"%>Ajax标签:
Struts2主要使用了Struts2标签库和OGNL(ObjectGhaphNativeLanguage,对象图导航语言)表达式语言二项技术来简化表现层方面的开发。
struts2标签库使用OGNL表达式作为基础,极大的提高了对集合、对象的访问能力struts2标签库支持模板和主题,极大的简化了视图页面的编写4.2OGNL表达式语言OGNL是一种可以方便操作对象属性的开源表达式语言,是struts2的默认表达式语言。主要具有以下优点:可以方便地访问OGNL上下文和ActionContext可以方便地操作对象、数组及集合使用OGNL访问对象的属性的基本格式:propertyName#OpertyName使用OGNL操作集合:创建集合:
1)List集合:{‘book1’,’book2’,’book3’}2)Map集合:#{‘bookl’:23,’book2’:36}使用in、notin元素符判断某个元素是否在指定集合中:
<s:iftest=“’book1’in{‘book1’,’book2’}”>使用选择操作符获取集合的子集:
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:用于按page>request>session>application顺序访问其属性,#attr.name相当于按顺序在以上四个范围(scope)内读取name属性,直到找到为止2)用于选择和投影集合,如:选择(子集):
books.{?#this.price<100}投影:books.{?#this.price<100}.{bookName}3)用于构造Map,如:#{‘bookl’:’23’,’book2’:’36’}OGNL的“%”操作符的作用在标签的属性为字符串类型时,可使用%和“{”和“}”计算OGNL表达式的值,如:label=“%{username}”、label=“%{#session.username}”OGNL的“$”操作符的作用“$”有两个主要的用途:用于在国际化资源文件中,引用动作属性及配置项中定义的属性值,如:${min}、${max}在Struts2配置文件中,引用动作属性值,如:
<result>admin.jsp?type=${type}
</result>UI标签:表单标签:主要用于生成HTML表单非表单标签:主要用于在页面中生成一些非表单的可视化元素,如显示信息的标签:actionerror、actionmessage非UI标签:逻辑控制标签:主要用于条件、循环等流程控制,如if、elseif、iterator数据标签:主要用于数据存储和处理,如property、bean、textAjax标签:
主要用于支持Ajax,如显示日期的datetimepicker4.3
struts2标签类型4.4struts2表单及其元素标签属性说明action指定处理表单所提交信息的动作method定义表单信息提交的方法,默认为post表示什么意思?表单标签:s:form常用属性:例如:
<s:formaction="FormAction“/>
按钮标签:提交按钮:s:submit,用于提交表单数据重置按钮:s:reset,用于返回表单的默认值常用属性:例如:<s:submitvalue="提交表单"/>属性说明name定义按钮的名字,动作类通过该名字取得按钮的值value定义按钮上的显示字符串属性说明name定义输入框的名字,动作类通过该名字取得输入框的值label定义输入框的描述字符串,默认显示在输入框的左边readonly定义输入框的只读属性,true表示输入框不能编辑rows定义文本域的行数cols定义文本域的列数输入框标签:文本框标记:s:textfield,用于输入单行文本密码框标记:s:password,用于输入密码文本域标记:s:textarea,用于输入多行文本常用属性:例如:<s:textfieldname=“text”label=“登录名称"/><s:passwordname=“password”label=“登录密码"/><s:textareaname=“textarea”label=“个人简介"rows="8"cols=“30"/>选择框标签:单选框标签: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:radioname=“employee”list=“{‘员工1’,‘员工2’,‘员工3’}”label=“选择员工”value=“’员工3’”/><s:checkboxlistlabel=“喜欢运动”list=“#{1:‘网球’,2:’乒乓球’,3:’蓝球’}“
listKey=“key”listValue=“value”value="{1,2}"name="sports"/>列表框标签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:selectname="book1"label="选择图书"headerKey="-1"headerValue="选择其中一本图书"list="{'图书1','图书2','图书3','图书4','图书5'}"value="'图书3'"emptyOption="true"/>
效果图例如(列表):
<s:selectname="books_map"label="图书列表"
labelposition="top"list="#{'Struts2':'Struts2从入门到精通','Spring2.5':'Spring2.5开发宝典','Ajax':'Ajax实战','Jsp':'Jsp技术详解'}"listKey="key"
listValue="value“multiple="true"
size="4"
value="{'Spring2.5','Jsp'}"/>效果图s:label只读标签,用于输出指定属性的信息到浏览器常用属性:例如:<s:labellabel="爱好的运动"name="sports"/>属性说明name指定需要输出的属性的名字label定义输出的标签字符串表单标签综合应用示列:创建一个动作类创建一个表单参数输入JSP页面,保存目录为WebRoot创建一个结果显示JSP页面,保存目录为WebRoot编写配置文件,定义动作包和动作创建动作FormTagsAction:(接前):2.创建表单参FormTagsInput.jsp:3.表单结果显FormTagsResult.jsp:4.编写配置文件,定义动作包和动作:执行结果:4.5Struts2数据标签常用struts2数据标签:s:actions:propertys:params:dates:texts:urls:action用于在JSP页面直接调用一个Action常用属性如下:例如:<s:action
name=“LoginAction"executeResult=“true"/>属性说明name指定标签调用的Actionnamespace指定标签调用的Action所在的namespaceexecuteResult指定是否要将Action的处理结果页面包含到本页面s:property用于输出指定属性的值到浏览器常用属性如下:例如:<s:property/><s:property
value="name"/><s:property
value="noName"default="默认值"/>属性说明value指定需要输出值的属性的名字,省略则输出值栈栈顶值default当指定的属性名字不存在时显示的默认值s:param用于为其他标签提供参数,经常与s:url等标签一起使用常用属性如下:例如:<s:url
var="url"action="loginAction"><s:param
name=“username”value=“’nch’”/><!--<s:paramname="username">nch</param>--></s:url>属性说明name指定参数名字value指定参数的值s:date用于格式化并输出一个日期常用属性如下:例如:<s:bean
var=“now”name=“java.util.Date“/><s:date
name=“#now”/>(yyyy-MM-dd
hh:mm:ss)<s:date
name=“#now”
format=“dd/MM/yyyy”/>属性说明name必填属性,用于指定要格式化的日期format指定格式化日期的格式s:text用于显示资源文件中的指定key的属性值常用属性如下:例如:属性说明name设置资源文件中的指定key名<s:text
name=“helloWorld“/>s:url用于生成一个URL地址,经常使用s:param标签来提供参数常用属性:例如:<s:url
action="CheckAction"/><s:url
value=http://localhost:8080/struts2/inc.jsp/>属性说明action定义超链接的目标端点为某个动作value定义超链接的目标端点为某个URL地址var用于引用所设置的URL地址链接标签应用示例:InputTagsAction.action?username=NCHChooseTagsAction.actionSelectTagsAction.action示例执行结果:4.6Struts2逻辑标签常用struts2逻辑标签:s:ifs:elseifs:elses:iterators:if用于进行条件判断,如果条件为真,则执行该标签体内的代码常用属性如下:例如:<s:if
test=“booleanvalue">
<h3>动作的booleanValue值true</h3></s:if>属性说明test条件判断属性,取值为true|falses:else与s:if结合使用,如果s:if不满足条件,则执行s:else后面的语句例如:<s:iftest="booleanValue">
<h3>动作的booleanValue值true</h3></s:if><s:else>
<h3>动作的booleanValue值false</h3></s:else>s:elseif与s:if结合使用,用于进行条件判断,如果条件为真,则执行该标签体内的代码常用属性:例如:<s:elseif
test="%{true}"><h3>执行elseif部分</h3></s:elseif>属性说明test条件判断属性,取值为true|falses:iterator用于循环遍历集合或数组中的所有元素一般配合<s:property>标识来输出所遍历到的元素常用属性:属性说明value指定需要遍历的集合或数组对象的名字var用于引用集合或数组中元素的名字status指定集合中元素的status属性例如:<s:iterator
value="strs“var=“str”> <s:propertyvalue=“str”/></s:iterator>指定status属性后,每次迭代都会产生一个子IteratorStatus实例对象,该对象包含以下一些有用方法和属性:
getCount()/count:当前迭代了几个元素
getIndex()/in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 7 Happy birthday Section A 1a~Pronunciation 说课稿 -2024-2025学年人教版(2024)七年级英语上册
- 习作:-让生活更美好(说课稿)-2024-2025学年统编版语文六年级上册
- 2025年幼儿园大班第一学期教学计划
- 2025年教师班级管理计划学校工作计划
- 油水分离设备相关项目投资计划书
- 2025幼儿园春季安全工作计划开头
- 2025年月营业员工作计划
- 工业行政后勤工作总结
- 电子商务行业工程师工作总结
- 电商行业营销策略培训心得
- 顶管施工危险源辨识及风险评价表
- 多学科联合诊疗(MDT)管理方案
- 重庆市建筑工程计价定额 说明及计算规则
- 2024年高中英语衡水体书法练字字帖
- 2021利达JB-QG-LD988EL JB-QT-LD988EL 火灾报警控制器 消防联动控制器调试手册
- 2024年《军事理论》考试题库附答案(含各题型)
- 第23课《出师表》课件(共48张)
- 中考句子翻译经典100句
- 2024年环境影响评价工程师之环评法律法规题库及完整答案【各地真题】
- 公务员考试常识题库500题(含答案)V
- 手机拍摄短视频
评论
0/150
提交评论