chapter8-struts2标签库
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
struts2讲义
merge 用于将多个集合对象拼接起来,组成一个新的 集合。和append不同
append:第一个集合第一个元素、第一个集合第二 个元素、第二个集合第一个元素 merge:第一个集合第一个元素、第二个集合第一 个元素、第一个集合第二个元素。
<s:append id=“merge"> <s:param value="#{Struts',Hibernate'}" /> <s:param value=“#{计算机网络, 实验指导书}" /> </s:append>
struts2讲义
OGNL
标准的OGNL会设定一个根对象(root对象)。假设使用标 准OGNL表达式来求值(不使用Struts 2的OGNL表达式), 如果OGNL上下文(OgnlContext Map类型)有两个对象: foo对象,在OgnlContext中名称为foo;bar对象,在 OgnlContext中名称为bar。同时foo对象被设置为根对象 (root)。则利用下面的OGNL表达式求值:
struts2讲义
if
正确 <s:if test=aStringProperty == "A" '> This works! </s:if> 正确 <s:if test="aStringProperty == \"A\""> This works too! </s:if> 错误 <s:if test="aStringProperty == 'A'"> Why doesn't this work when myString is equal to A? </s:if>
struts2讲义
OGNL
Struts 2中的OGNL Context是ActionContext,结构示意图如 下:
ValueStack(值栈,它是根对象) parameters OGNL Context request session application attr
struts2讲义
OGNL
struts2讲义
iterator
<s:iterator value="(10).{ #this }"> <s:property/> </s:iterator>
struts2讲义
append 用于将多个集合对象拼接起来,组成一个新的 集合。
<s:append id="newList"> <s:param value="{Struts',Hibernate'}" /> <s:param value=“{计算机网络, 实验指导书}" /> </s:append>
名称 描述
int getCount
int getIndex boolean isOdd boolean isFirst boolean isLast
返回当前迭代了几个元素
返回当前迭代元素的索引 返回索引是否是奇数 返回被迭代元素是否是第一个 返回被迭代元素是否是最后一个
boolean isEven 返回索引是否是偶数
由于ValueStack(值栈)是Struts 2中OGNL的根对象,如果用户需要访问值栈中的 对象,则可以直接通过下面的代码访问ValueStack(值栈)中的属性: ${foo} //获得值栈中的foo属性 如果访问其他Context中的对象,由于不是根对象,在访问时,需要加#前缀。 application对象:用于访问ServletContext,例如#application.userName 或者#application['userName'],相当于调用Servlet的 getAttribute("username")。 session对象:用来访问HttpSession,例如#session.userName或者 #session['userName'],相当于调用session.getAttribute("userName")。 request对象:用来访问HttpServletRequest属性(attribute)的Map,例如 #request.userName或者#request['userName'],相当于调用 request.getAttribute("userName")。 parameters对象:用于访问HTTP的请求参数,例如#parameters.userName或 者#parameters['userName'],相当于调用 request.getParameter("username")。 attr对象:用于按page->request->session->application顺序访问其属性。
id
否
指定集合里元素的id
struts2讲义
iterator
<table border="1" width="200"> <s:iterator value="{Struts2',Hibernate,Spring}" id="name“ status=“st”> <tr> <td><s:property value="#st.count"/><s:property value="name"/></td> </tr> </s:iterator> </table>
subset
<table border="1" width="200"> <s:subset source=“{Struts2,Hibernate,Spring}” start="1" count="3"> <s:iterator status="st"> <tr <s:if test="#st.odd">style="backgroundcolor:#bbbbbb"</s:if>> <td><s:property/></td> </tr> </s:iterator> </s:subset>
#foo.blah // 返回foo.getBlah() #bar.blah //返回bar.getBlah()
blah //返回foo.getBlah() ,因为foo为根对象
访问Ognl Context中的对象需要使用#符号标注命名空间,如#bar ,如果要访问的属性属于根对象,则可以省略命名空间,直接访 问该属性。
struts2讲义
wk.baidu.com
标签概述 Struts2的标签库大大简化了数据的输出,也 提供了大量标签来生成页面效果。与strut1的 标签库相比,struts2的标签库功能更加强大 。而且更加简单易用。
struts2讲义
简单分类 UI标签,主要用于HTML元素的标签。 Ajax标签,用于ajax支持的标签。 表单标签:生成html页面form表单元素 非表单标签:生成树,tab标签 流程控制标签:实现分支,循环等控制流程的 标签 数据访问标签: 输出valueStack中的值。
struts2讲义
generator 将指定字符串按指定分隔符分割成多个子字符 串。
属性 count seperator val converter id 生成集合中元素的总数 必填,指定分隔符 必填,指定被解析的字符串 负责将集合中的每个字符串转换成对象 将生成的集合放在request属性中 描述
struts2讲义
控制标签 If elseif else 控制选择输出标签 append用于将多个集合并成一个新集合 generator将一个字符串解析成集合。 iterator用于将集合迭代输出。 merge将多个集合并成一个新集合 sort对集合进行排序。 subset截取结合元素,形成新的集合。
Struts2
www.cfkyit.com subtitle style
张向军
struts2讲义
Struts2标签库
ognl 控制标签 数据标签 主题和模板 form标签
struts2讲义
OGNL
OGNL是Object Graphic Navigation Language( 对象图导航语言)的缩写,它是一个开源项目。 Struts 2框架使用OGNL作为默认的表达式语言。
struts2讲义
数据标签
action 直接调用一个action,并且可以获得执行返回 的结果。 Bean:创建一个java对象。 Date格式化输出一个日期。 debug生成调试链接。 I18n指定国际化资源 Include包含其他jsp param:用于设置参数。 Push将某个值放入valueStack Set设置一个新变量,将变量放入指定范围。 url用于生成url地址 property输出valueStack,stack Content, ActionContext中的值。
struts2讲义
if 语法格式:
<s:if test=“表达式”> 标签体 </s:if> <s:elseif test=“表达式” > 标签体 </s:elseif> <s:else> 标签体 </s:else>
struts2讲义
if
<s:set name="age" value="29"/> <s:if test="${age > 60}"> 老年人 </s:if> <s:elseif test="${age > 35}"> 中年人 </s:elseif> <s:elseif test="${age > 15}“ > 青年人 </s:elseif> <s:else> 少年 </s:else>
struts2讲义
subset 用于取得集合的子集。
属性 count source start converter id 指定子集中元素的个数 指定源集合 指定子集从源集合的第几个元素开始截取 负责将集合中的每个字符串转换成对象 将生成的集合放在pageContext属性中 描述
第21页
struts2讲义
struts2讲义
iterator 对集合进行迭代,集合包含list,set,数组 ,map类型对象进行输出。
名称
status value
必须
否 否
描述
制定迭代时的IteratorStatus实例,通过该实例即可判断 当前迭代元素的属性. 指定迭代的集合,没有指定,则使用 ValueStack栈顶的 集合
struts2讲义
OGNL
如果需要一个集合元素的时候(例如List对象或者Map对象),可以使用OGNL中同集合 相关的表达式。 使用如下代码直接生成一个List对象: <s:set name="list" value="{'zhangming','xiaoi','liming'}" /> <s:iterator value="#list" id="n"> <s:property value="n"/><br> </s:iterator> 生成一个Map对象: <s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" /> <s:iterator value="#foobar" id="n" status="st"> <s:property value="key"/>=<s:property value="value"/><br> </s:iterator> Set标签用于将某个值放入指定范围。 scope:指定变量被放置的范围,该属性可以接受application、session、request、 page 或action。如果没有设置该属性,则默认放置在OGNL Context中。 value:赋给变量的值.如果没有设置该属性,则将ValueStack栈项的值赋给变量。
struts2讲义
generator
<table border="1" width="240"> <s:generator val="'Struts,Hibernate,Spring'" separator=","> <s:iterator status="st"> <tr <s:if test="#st.odd">style="backgroundcolor:#bbbbbb"</s:if>> <td><s:property/></td> </tr> </s:iterator> </s:generator> </table>