3.介绍一下常用的标签库 <%@ taglib prefix="s" uri="/struts-tags" %>

Struts 1.x Struts 2.0
分类 将标志库按功能分成HTMLTilesLogicBean等几部分 严格上来说,没有分类,所有标志都在URI“/struts-tags”命名空间下,不过,我们可以从功能上将其分为两大类:非UI标志和UI标志
表达式语言(expression languages不支持嵌入语言(EL OGNLJSTLGroovyVelcity
如果想引入标签的话就只需要将上面的URI引用进来就好了!


要在JSP中使用Struts 2.0标志,先要指明标志的引入。通过在JSP的代码的顶部加入以下代码可以做到这点。
<%@taglib prefix="s" uri="/struts-tags" %>


  • UI标志

<!--[if !supportLists]-->o
<!--[endif]-->ifelseifelse



描述:
执行基本的条件流转。


不作界面的标签库的哦!


参数:




名称



必需



默认



类型



描述



备注



test







Boolean



决定标志里内容是否显示的表达式



else标志没有这个参数



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性




这三个非UI标志的会有参数进来的!
例如 :
<s:if test="#name == 'Max'"> <!--就会有一个参数test了-->
Max's file here
</s:if>
<s:elseif test="#name == 'Scott'">
Scott's file here
</s:elseif>
<s:else>
Other's file here
</s:else>
<s:if 这个标签是有参数的!>


iterator



描述:
用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。



参数:




名称



必需



默认



类型



描述



status







String



如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈



value







Object/String



要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性



第二个常用的非UI标签iterator
<s:iterator status="" >

i18n



描述:
加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包。



参数:




名称



必需



默认



类型



描述



value







Object/String



资源包的类路径(如com.xxxx.resources.AppMsg



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性



第三个标签:i18n

include



描述:
包含一个servlet的输出(servletjsp的页面)。



参数:




名称



必需



默认



类型



描述



value







String



要包含的jspservlet



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性


<s:include value="/condition.jsp">
<s:param name="name">Max</s:param>
</s:include>
这个就相当于JSP中的<include file="" >
<param name="" value="">
</include>

param



描述:
为其他标签提供参数,比如include标签和bean标签. 参数的name属性是可选的,如果提供,会调用Component的方法addParameter(String, Object), 如果不提供,则外层嵌套标签必须实现UnnamedParametric接口(TextTag)




<!--[if !vml]--><!--[endif]-->



value的提供有两种方式,通过value属性或者标签中间的text,不同之处我们看一下例子:



<param name="color">blue</param><!-- (A) -->



<param name="color" value="blue"/><!-- (B) -->
(A)
参数值会以String的格式放入statck.
(B)该值会以java.lang.Object的格式放入statck.



参数:




名称



必需



默认



类型



描述



name







String



参数名



value







String



value表达式



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性



可以给include中提供参数的哦!

set



描述:
set
标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。其在两种情况下非常有用: 复杂的表达式很耗时 (性能提升) 或者很难理解 (代码可读性提高)



参数:




名称



必需



默认



类型



描述



name







String



变量名字



scope







String



变量作用域,可以为application, session, request, page, action.



value







Object/String



将会赋给变量的值



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性



text



描述:
支持国际化信息的标签。国际化信息必须放在一个和当前action同名的resource bundle,如果没有找到相应message,tag body将被当作默认message,如果没有tag body,messagename会被作为默认message



参数:




名称



必需



默认



类型



描述



name







String



资源属性的名字



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性



url



描述:
该标签用于创建url,可以通过"param"标签提供request参数。


可以通过这个标签来创建URL。通过param来提供好参数
<a href='<s:url value="/i18n.jsp"
/>'>i18n</a><br />
<s:url id="url" value="/condition.jsp">
<s:param name="name">Max</s:param>
</s:url>
<s:a href="%{url}">if\elseif\else</s:a>

property



描述:
得到'value'的属性,如果value没提供,默认为堆栈顶端的元素。



参数:




名称



必需



默认



类型



描述



default







String



如果属性是null则显示的default



escape





true



Booelean



是否escape HTML



value





栈顶



Object



要显示的值



id







Object/String



用来标识元素的id。在UI和表单中为HTMLid属性



OK,现在来看看UI标签吧!
UI标志又可以分为表单UI和非表单UI两部分。表单UI部分基本与Struts 1.x相同,都是对HTML表单元素的包装。不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepickerdoubleselecttimepickeroptiontransferselect
可以是表单中的常用UI也可以是其他类型的
快乐渡过每一天,减肥坚持每一天