Struts2框架提供了丰富的标签库用于构建视图组件。Struts2标签库大大简化了视图页面的开发,并且提高了视图组件的可维护性。
Struts2标签库一般分为三大类:UI标签、非UI标签、Ajax标签。
UI标签(用户界面标签):主要用来生成HTML元素的标签。
非UI标签(非用户界面标签):只要用来实现数据访问、逻辑控制。
Ajax标签:主要用于Ajax技术。
下面我来介绍一下Struts2中常用的标签:
1、<s:checkbox>标签
checkbox标签是复选框标签,常用属性如下所示:
(1)、label:设置显示的字符串,可选项;
(2)、name:设置表单元素的名字,必选项;
(3)、value:该属性用于设置是否默认选定,可选项;
例子:
<s:checkbox label=“学习” name=“学习” value=“true”/>
2、<s:checkboxlist>标签
checkboxlist标签可以一次性创建多个复选框,在HTML中可以使用多行实现。常用属性是list。
list:指定集合用于生成复选框的列表项,可以使用List集合或者Map对象,必选项;
例如:
<s:checkboxlist label=“个人爱好” list="(‘学习’,‘看电影’,‘编程序’)" name=“love”></s:checkboxlist>
3、<s:combobox>标签
combobox标签生成一个单行文本框和一个下拉列表框的组合,两个表单元素对应一个请求,单行文本框中的值对应请求参数,下拉列表框只是起到辅助作用。常用属性如下所示:
(1)、list:指定集合生成下拉列表项,可以使用List集合或者Map对象,必选项;
(2)、readonly:指定文本框是否可以编辑,当readonly为true时,不可编辑,当readonly为false时,可编辑,默认为false,可选项;
例子:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>combobox标签的使用</title>
</head>
<body>
<s:form>
<s:combobox label="颜色选择" name="colorName" readonly="false"
headerValue="---请选择---"headerKey="1" list="{'红色','黄色','绿色'}">
</s:combobox>
</s:form>
</body>
</html>
运行结果:
4、<s:doubleselect>标签
doubleselect标签生成一个相互关联的列表框,在第一个列表框中选择某一项后,第二个列表框中将自动为其选定相应内容。常用属性如下所示。
(1)、name:指定列表的名字,必选项;
(2)、headerValue:指定列表框默认项的值;
(3)、headerKey:指定列表框默认项的值;
(4)、doubleName:指定第二个下拉列表框的名字;
(5)、list:指定第一个下拉列表框中选项的集合;
(6)、doubleList:指定第二个下拉列表框中选项集合;
(7)、top:指定第一列表框;
例子:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>doubleselect标签的使用</title>
</head>
<body>
<s:form>
<s:doubleselect label="选择一项" headerValue="---请选择---"
headerKey="1" doubleName="doublese1" list="{'颜色','水果'}"
doubleList="top=='颜色' ? {'红色','黄色','绿色'} : {'苹果','梨','西瓜'}" />
</s:form>
</body>
</html>
运行结果:
5、<s:file>标签
file标签用于在页面上生成一个上传文件的元素。上传文件的具体实现以后再慢慢细谈。
例子:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>file标签的使用</title>
</head>
<body>
<s:form>
<s:file name="UploadFileName" label="上传文件" accept="text/*" />
</s:form>
</body>
</html>
运行结果:
6、<s:select>标签
select标签可以生成一个下拉列表框,常用属性如下所示。
(1)、size:指定下拉列表框中可以显示的选择项个数,可选项;
(2)、multiple:设置该列表看是否可以多选,默认值为false,可选项;
(3)、list:指定下拉列表框的内容。
例子:
<s:select label=“选择星期” headerValue="—请选择—" headerKey=“3” list="{‘星期一’,‘星期二’,‘星期三’,‘星期四’}" />
7、<s:radio>标签
radio标签为一个单选框,用法和checkboxlist标签相似。
例子:
<s:radio label=“性别” list="{‘男’,‘女’}" name=“sex” />
8、<s:textarea>标签
textarea标签用来生成一个文本区域,由行和列组成。
例子:
<s:textarea label=“留言板” name=“留言” cols=“10” rows=“10” />
9、<s:token>标签
token标签的使用目的是防止用户多次提交表单,避免恶意刷新页面。
例子:
<s:token />
10、<s:optiontransferselect>标签
optiontransferselect标签用来创建2个选项框以及转移项,该标签会自动生成两个下拉列表框,同时生成相关的按钮,这些按钮可以控制选项在两个下拉列表框之间移动和排序,常用属性如下所示:
(1)、addAllToLeftLabel:设置实现全部左移动功能按钮上的文本。
(2)、addAllToRightLabel:设置实现全部右移动功能按钮上的文本。
(3)、addToLeftLabel:设置左移动功能按钮上的文本。
(4)、addToRightLabel:设置右移动功能按钮上的文本。
(5)、allowAddAllToLeft:设置全部左移动功能的按钮。
(6)、allowAddAllToRight:设置全部右移动功能的按钮。
(7)、allowAddToLeft:设置左移动功能的按钮。
(8)、allowAddToRight:设置右移动功能的按钮。
(9)、leftTitle:设置左边列表框的标题。
(10)、RightTitle:设置右边列表框的标题。
(11)、allowSelectAll:设置全部选择功能的按钮。
(12)、selectAllLabel:设置全部选择功能按钮上的文本。
(13)、multiple:设置第一个列表框是否多选,默认为true。
(14)、doubleName:设置第二个列表框的名字。
(15)、doubleList:设置第二个列表框的集合。
(16)、doubleMultiple:设置第二个列表框是否允许多选,默认是true。
例子:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>optiontransferselect标签的使用</title>
</head>
<body>
<s:form>
<s:optiontransferselect label="你喜欢的城市" name="left" leftTitle="国内"
rightTitle="国外" list="{'北京','上海','深圳','海口','青岛'}"
headerValue="---请选择---" headerKey="1" doubleName="right"
doubleHeaderValue="---请选择---" doubleHeaderKey="1"
doubleList="{'华盛顿','东京','温哥华','多伦多'}" />
</s:form>
</body>
</html>
运行结果: