Struts2常用标签总结

Struts2常用标签总结

status="statu">? <s:if test="%{#statu.odd}">? color="red"><s:property value="#ent" />? </font>? <s:else>? <s:property value="#ent" />? </s:else>?</s:iterator>? ?第二

种:map集合中的使用? <h3>Map集合</h3>? <!-- map? 语法格式:# {key:value,key1:value1,key2:value2,.....} ? 以上的语法

中就直接生成了一个Map类型的集合,该Map对象中的每个key-value对象之间用英文的冒

号隔开 ? ,多个元素之间用逗号分隔。 ? --> </div>?? <s:set var="map" value="#{'1':'laowang','2':'老王','3':'猩猩 遍历Map:? <br />? <s:iterator value="#map"> <s:property value="key" />:::<s:property value="value" />? <Br

</s:iterator>\??第三种:集合的变量?<h3>遍历集合:::</h3>? <!-- 遍历出价格大于3000的 -->? <s:iterator var="uservalue="#session['users']">? <s:if <s:property value="#user['price']"/>? </s:if> </s:iterator>? ? ? color="blue"/><!-- $是取出价格 大于3000的最后一个值 -->? var="u" value="#session.users.{$(#this['price']>3000)}">? value="price"/>? </s:iterator>? </div>?注:users是User的

对象,price是User中的一个属性??简述一下iterator的介绍:?iterator标签用于对集合进

行迭代,这里的集合包含List、Set和数组。?<s:set name="listvalue="{'zhangming','xiaoi','liming'}" />?<s:iterator value="#list" status="st">? color=<s:if test="#st.odd">red</s:if><s:else>blue</s:else>>? /></font><br>?</s:iterator> ?value则使用ValueStack栈顶的集合。?id:可选属性,指定集合里元素的id。?status该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:? int getCount(),

返回当前迭代了几个元素。? int getIndex(),返回当前迭代元素的索引。? isEven(),返回当前被迭代元素的索引是否是偶数? boolean isOdd(),返回当前被迭代元

素的索引是否是奇数? boolean isFirst(),返回当前被迭代元素是否是第一个元素。

boolean isLast(),返回当前被迭代元素是否是最后一个元素。???(3)if else语句的使用

<s:set name="age" value="21" />?<s:if test="#age==23">? test="#age==21">? 21?</s:elseif>?<s:else>? 都不等?</s:else> ??(4)URL标签

<!-- 声明一个URL地址 -->? <s:url action="test" namespace="/tag" <s:param name="username">laowangang</s:param>? name="id">12</s:param>? </s:url>? <s:a href="%{add}">测试 <s:a action="test" namespace="/tag"></s:a>? 以上的两个<s:a>标签的作用是一样的。?(5data标签?<%? pageContext.setAttribute("birth",neDate(200,03,10),PageContext.REQUEST_SCOPE);? %>? name="#request.birth" format="yyyy年MM月dd日"/>? <s:daname="#request.birth" nice="true"/>? 这个标签是按照format的格式去输出的。??(6表单?? ? <h1>from表单</h1>? <s:form namespace="/tag">? <s:textfield label="用户名" name="uname" tooltip="你的名

字" javascriptTooltip="false"></s:textfield>? <s:textarea cols="40" rows="20" tooltipDelay="300" tooltip="hi" label="备注javascriptTooltip="true"></s:textarea>? <s:password label="密码

Struts2常用标签总结

 

第二篇:Struts 2.2.1 零配置总结

Struts2 2.2.1 零配置总结

Struts2 2.2.1这个版本相对于长使用的Struts2 2.0.14版本变化很多。

一、Web.xml中使用的拦截器变化了,Struts2 2.2.1已经不推荐使用

org.apache.struts2.dispatcher.FilterDispatcher

现在推荐使用

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

这点改进官方说法是更好的支持Struts2与其他拦截器的共同使用

二、Struts2的零配置 Struts2 2.2.1与Struts2 2.0.14零配置方便发生了很大的变动,Struts2 2.0.14零配置Annotation由struts2-codebehind-plugin-2.0.14.jar支持,而最新版本中已经推荐使用struts2-convention-plugin-2.2.1.jar。主要有一下几点变动

1) @Result中的type属性由类类型变成字符串类型。

chain com.opensymphony.xwork2.ActionChainResult

dispatcher org.apache.struts2.dispatcher.ServletDispatcherResult

freemarker org.apache.struts2.views.freemarker.FreemarkerResult

httpheader org.apache.struts2.dispatcher.HttpHeaderResult

redirect org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction org.apache.struts2.dispatcher.ServletActionRedirectResult stream org.apache.struts2.dispatcher.StreamResult

velocity org.apache.struts2.dispatcher.VelocityResult

xslt org.apache.struts2.views.xslt.XSLTResult

plainText org.apache.struts2.dispatcher.PlainTextResult

这是名称和类的映射关系

2) @Result value属性由location取代

3) 经典配置比较:

Structs2 2.0.14:

@Namespace("/")

@ParentPackage("default")

@Results({

@Result(name = Action.SUCCESS, type = ActionChainResult.class, ), @Result(name = "exception", value="error.jsp") value = "result", params = { "actionName", "chain", "namespace", "/" }

})

Structs2 2.2.1:

@Namespace("/")

@ParentPackage("default")

@Results({

@Result(name = Action.SUCCESS, type = “chain”, ), @Result(name = "exception", location="error.jsp") params = { "actionName", "chain", "namespace", "/" }

})

4) 使用零配置后命名规则变更,Struts2 2.0.14命名规则是首字符小写,例如HelloWorldAction的Action是helloWorld.action。Struts2 2.2.1默认是所有小写两个单词间使用-,对于HelloWorldAction的Action是hello-world.action。

Struts2 2.2.1可以通过在Struts.xml中加入配置恢复以前的命名规则:

<bean type="org.apache.struts2.convention.ActionNameBuilder" name="defaultConvention" class="org.apache.struts2.convention.DefaultActionNameBuilder"/>

<constant name="struts.convention.actionNameBuilder" value="defaultConvention"/>

5) Struts2 2.2.1的ChainIntercepter有Bug,导致使用chain Result时,两个Action中的内容不能复制,方法是自定一个ChainIntercepter,自定义的ChainIntercepter使用Struts2 2.0.14即可

相关推荐