Struts2标签库概述
对于一个MVC框架而言,重点是实现两部分:业务逻辑控制器部分和视图页面部分。Struts2前者通过action来提供支持,而视图则是由大量的标签来提供支持。
Struts2标签库大致分为两类,普通标签和UI标签
普通标签又分为控制标签和数据标签
UI标签又分为表单标签,非表单标签,Ajax标签
Struts2标签的使用
<%@taglib prefix="s" uri="/struts-tags"%>
Struts2的控制标签
控制标签用来完成条件循环,逻辑循环的控制,也可以用来做集合的操作
<s:if test="表达式1">分支逻辑控制
标签体,test必须制定
</s:if>
<s:elseif test="表达式1">
标签体,test必须指定
</s:elseif>
<s:else>
标签体
</s:else>
s:iterator> 主要用于对集合中的数据进行迭代
*属性
begin,类型Integer,迭代数组或者集合的起始位置,默认0
end,类型Integer,迭代数组或者集合的结束位置,默认0
status,类型Boolean,迭代过程中的状态
st.count 返回当前已经遍历的集合元素个数
st.first,st.last 返回当前遍历元素是否为集合的第一或者最后一个元素
st.index 返回遍历元素的当前索引值
st.even st.odd,判断是否为偶数/奇数
<s:iterator var="name" value="{'Java','Java Web','Oracle','Mysql'}"
<s:if test="#st.odd">
...
数据标签
s:property
用于输出特定的值,通常输出value属性指定的值
属性:
id,可选属性,指定该元素的表示
default,如果要输出的属性值为null,则显示default属性指定的值
escape,指定是否忽略HTML代码
value,指定需要输出的属性值,如果没有正定该属性,则默认输出ValueStack栈顶的值
s:a
用于构造HTML页面中的超链接
action 指定超链接Action地址
href 超链接地址
namespace 指定Action地址
id 指定id
method 指定Action调用方法
s:debug
用于在调试程序时输出更多的调试信息,主要输出ValueStack和StackContext中的信息
s:include
用来在当前页面中包含另一个页面
s:param
为其他标签提供参数
<s:param name="color" value="'red'"></s:param>
<s:param name="color">red</s:param>
Struts2的模式和主题
提供了 simple xhtml css_xhtml Ajax四种主题
使用方法:
struts.xml中添加
<constant name="struts.ui.theme" value="simple"/>
或
struts.properties中添加
struts.ui.theme=simple
表单标签
s:form
属性:action,指定提交时对应的action,不需要action后缀
enctype,HTML表单enctype属性
method,HTML表单method属性
namespace,所提交action的命名空间
s:submit
属性:
action
method,指定action中调用的方法
s:textfiled和s:textarea
前者创建单行文本,后者创建多行文本,一般指定label属性和name属性
s:password
name
size,指定密码输入框的显示宽度,以字符数为单位
maxlength,限定密码输入框的最大输入字符串个数
showPassword,是否显示初始值,及时显示也仍为密文显示
s:radio
创建单选按钮
属性:
list,必填项,Cellection,MapEnmumeration,Iterator,array,用于生成单选框中的集合
listKey,String,指定集合对象中哪个属性作为选项的value
listValue,指定内容
s:checkbox
用于创建复选框
name
value
label
filedValue,指定真实的value值,会屏蔽value属性值
s:checkboxlist
用于一次性创建多个复选框
name
list
listKey
listValue
s:select
创建下拉列表框
s:optgroup
生成选项组
s:file
文件选择框
s:hidden
隐藏表单元素
s:reset
重置按钮
非标单标签
s:actionerror
s:actionmessage
s:filederror