3.介绍一下常用的标签库 <%@ taglib prefix="s" uri="/struts-tags" %>
| | Struts 1.x | Struts 2.0 |
| 分类 | 将标志库按功能分成HTML、Tiles、Logic和Bean等几部分 | 严格上来说,没有分类,所有标志都在URI为“/struts-tags”命名空间下,不过,我们可以从功能上将其分为两大类:非UI标志和UI标志 |
| 表达式语言(expression languages) | 不支持嵌入语言(EL) | OGNL、JSTL、Groovy和Velcity |
如果想引入标签的话就只需要将上面的URI引用进来就好了!
 |
要在JSP中使用Struts 2.0标志,先要指明标志的引入。通过在JSP的代码的顶部加入以下代码可以做到这点。
<%@taglib prefix="s" uri="/struts-tags" %>
|
<!--[if !supportLists]-->o
<!--[endif]-->if、elseif和else
描述:
执行基本的条件流转。
不作界面的标签库的哦!
参数:
名称
|
必需
|
默认
|
类型
|
描述
|
备注
|
test
|
是
|
|
Boolean
|
决定标志里内容是否显示的表达式
|
else标志没有这个参数
|
id
|
否
|
|
Object/String
|
用来标识元素的id。在UI和表单中为HTML的id属性
|
|
这三个非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和表单中为HTML的id属性
|
第二个常用的非UI标签iterator
<s:iterator status="" >
i18n
描述:
加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包。
参数:
名称
|
必需
|
默认
|
类型
|
描述
|
value
|
是
|
|
Object/String
|
资源包的类路径(如com.xxxx.resources.AppMsg)
|
id
|
否
|
|
Object/String
|
用来标识元素的id。在UI和表单中为HTML的id属性
|
第三个标签:i18n
include
描述:
包含一个servlet的输出(servlet或jsp的页面)。
参数:
名称
|
必需
|
默认
|
类型
|
描述
|
value
|
是
|
|
String
|
要包含的jsp或servlet
|
id
|
否
|
|
Object/String
|
用来标识元素的id。在UI和表单中为HTML的id属性
|
<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和表单中为HTML的id属性
|
可以给include中提供参数的哦!
set
描述:
set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。其在两种情况下非常有用: 复杂的表达式很耗时 (性能提升) 或者很难理解 (代码可读性提高)。
参数:
名称
|
必需
|
默认
|
类型
|
描述
|
name
|
是
|
|
String
|
变量名字
|
scope
|
否
|
|
String
|
变量作用域,可以为application, session, request, page, 或action.
|
value
|
否
|
|
Object/String
|
将会赋给变量的值
|
id
|
否
|
|
Object/String
|
用来标识元素的id。在UI和表单中为HTML的id属性
|
text
描述:
支持国际化信息的标签。国际化信息必须放在一个和当前action同名的resource bundle中,如果没有找到相应message,tag body将被当作默认message,如果没有tag body,message的name会被作为默认message。
参数:
名称
|
必需
|
默认
|
类型
|
描述
|
name
|
是
|
|
String
|
资源属性的名字
|
id
|
否
|
|
Object/String
|
用来标识元素的id。在UI和表单中为HTML的id属性
|
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和表单中为HTML的id属性
|
OK,现在来看看UI标签吧!
UI标志又可以分为表单UI和非表单UI两部分。表单UI部分基本与Struts 1.x相同,都是对HTML表单元素的包装。不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepicker、doubleselect、timepicker、optiontransferselect等
可以是表单中的常用UI也可以是其他类型的