Struts2提供了大量的标签来开发表现层页面。这些标签的大部分,都可以在各种表现层技术中使用。
Struts2将所有标签分为以下三类:
UI(用户界面):主要用于生成HTML元素的标签
非UI标签:主要用于数据访问、逻辑控制等的标签
Ajax标签:用于Ajax支持的标签
1、控制标签
1)、if/elseif/else:都是用来进行分支控制的
语法格式为:
对于上面三个标签的组合使用,只有<s:if.../>可以单独使用。其余两个必须和<s:if.../>配合使用。在这个当中可以与多个<s:elseif.../>标签结合使用。
2)、iterator:用于将List、Map、ArrayList等集合进行循环遍历
迭代输出时,可以指定一下三个属性:
对于上面三个标签的组合使用,只有<s:if.../>可以单独使用。其余两个必须和<s:if.../>配合使用。在这个当中可以与多个<s:elseif.../>标签结合使用。
属性
|
说明
|
value
|
value属性指定的是被迭代的集合。如果没有指定value属性,则使用ValueStack栈顶的集合
|
id
|
id属性指定集合里元素的ID
|
status
|
status属性指定迭代的IteratorStatus实例。通过该实例可以判断当前迭代元素的属性
|
3)、append标签:用于将多个集合对象拼接起来,组成一个新的集合。它允许通过一个<iterator.../>标签来完成对多个集合的迭代
该标签需要指定一个var属性,该属性确定拼接生成的新集合的名字。
<s:append.../>可以接受多个<s:param.../>子标签,每个子标签指定一个集合。
4)、generator标签:可以将指定字符串按指定分隔符分隔成多个子串。
该标签有如下属性:
属性
|
说明
|
count
|
该属性指定生成集合中元素的总数
|
separator
|
该属性指定用于解析字符串的分隔符
|
val
|
该属性指定被解析的字符串
|
converter
|
该属性指定一个转换器,该转换器负责将集合中的每个字符串转换成对象
|
var
|
如果指定了该属性,则将生成的Iterator对象放入StackContext中
|
5)、merge标签:和append标签相似。
假如有两个集合{'abc','def','ghi'}、{'123','456','789'}
通过append方式拼接,新集合的元素顺序为:
abcdefghi123456789
通过merge方式拼接,新集合的元素顺序为:
abc123def456ghi789
6)、subset标签:用于取得集合的子集
该标签有如下属性:
属性
|
说明
|
count
|
该属性指定子集合中元素的个数。如果不指定该属性,则默认取得源集合的全部元素
|
source
|
该属性指定源集合。如果不指定该属性,则默认取得ValueStack栈顶的集合
|
start
|
该属性指定子集从源集合的第几个元素开始截取。默认从第一个
|
decider
|
该属性指定由开发者子集决定是否选中该元素
|
var
|
如果指定了该属性,则将生成的Iterator对象设置为page范围的属性
|
7)、sort标签:用于对指定的集合元素进行排序。
进行排序时,必须提供自己的排序规则。即实现自己的Comparator。
有如下几个属性:
属性
|
说明
|
comparator
|
该属性指定指定进行排序的Comparator实例
|
source
|
该属性指定被排序的集合。如果不指定,则默认对ValueStack栈顶的集合进行排序
|
var
|
如果指定了该属性,则将生成的Iterator对象设置成page范围的属性,不放入StackContext中
|
数据标签:
数据标签主要用于提供各种数据访问相关的功能,包含显示一个Action里的属性,以及生成国际化输出等功能。
1)、action标签
使用action标签可以允许在jsp页面中直接调用Action。如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果包含到本页面中来。
它有如下属性:
属性
|
说明
|
var
|
如果定义了该属性,那么该Action将会被放入ValueStack中
|
name
|
指定该标签调用哪个Action
|
namespace
|
该属性指定了该标签调用的Action所在的namespace
|
executeResult
|
该属性指定了是否要将Action的处理结果页面包含到本页面中
|
ignoreContextParams
|
该属性指定了该页面中的请求参数是否需要传入调用的action
|
2)、bean标签:用于创建一个javaBean实例。
它有如下两个属性:
属性
|
说明
|
name
|
该属性指定了要实例化的javaBean的实现类
|
var
|
如果指定了该属性,则该JavaBean实例会被放入发哦StackContext中,并放入requestScope中
|
3)、date标签:该标签用于格式化一个日期。还可以计算指定日期和当前时刻的时差
有如下属性:
属性
|
说明
|
form
|
如果指定了该属性,将根据该属性指定的格式来格式化日期
|
nice
|
该属性用于指定是否输出指定日期和当前时刻之间的时差。该属性值只能为true或false
|
name
|
该属性指定要格式化的日期值
|
var
|
如果指定了该属性格式化后的字符串将被放入StackContext中
|
注:如果既指定了nice="true",也指定了format属性,则会输出指定日期和当前时刻之间的时差,format属性会失效。
4)、debug标签:它会在页面生成一个超级链接,通过该链接可以查看到ValueStack和StackContext中所有的信息
5)include标签:用于将一个jsp页面或者一个Servlet包含到本页面中。
它有如下属性:
属性
|
说明
|
value
|
该属性指定需要被包含的jsp页面或者Servlet
|
还可以为该标签指定多个<s:param.../>子标签,用于将多个参数值传入被包含的jsp页面或者Servlet
6)、param标签:用于为其他标签提供参数
该标签有如下属性:
属性
|
说明
|
name
|
指定需要设置参数的参数名
|
value
|
指定需要设置参数的参数值
|
7)、push标签:用于将某个值放到ValueStack的栈顶
有下面一个属性:
属性
|
说明
|
value
|
该属性指定需要放到ValueStack栈顶的值
|
只有在push标签内时,被push标签放入ValueStack中的对象才存在;一旦离开了push标签,则刚刚放入的对象将会立即被移除ValueStack
8)、set标签:该标签用于将某个值放入到指定的范围内。
Set标签有如下属性:
属性
|
说明
|
scope
|
指定新变量被放置的范围,该属性可以接受application、session、request、page或者action5个值。默认为action
|
value
|
指定将赋给变量的值
|
var
|
如果指定了该属性,则会将被放入到request范围中,并被放入ONGL的StackContext中
|
9)、url标签:该标签用于生成一个URL地址。
可以通过为url标签指定param子元素,从而向指定URL发送请求参数。
10)、property标签:该标签的作用是输出指定值。
该标签有如下属性:
属性
|
说明
|
default
|
如果需要输出的属性值为null。则显示default属性指定的值
|
escape
|
指定是否escapeHTML代码
|
value
|
指定需要输出的属性值
|
表单标签
1)checkboxlist标签:创建复选框。相当于HTML中的checkbox标签:
属性
|
说明
|
list
|
根据指定的集合来生成多个复写框
|
listKey
|
该属性指定集合元素中的某个属性作为复选框的value。如果集合是Map,则可以使用key和value指定Map对象的key和value作为复选框的value
|
listValue
|
该属性指定集合元素中的某个属性作为复选框的标签。如果集合是Map,则可以使用key和value指定Map对象的key和value作为复选框的标签
|
2)、doubleselect标签:该标签用于生成一个级联列表框。当选择第一个下拉列表框时,第二个下拉列表框的内容会随着改变。
该标签有如下属性:
属性
|
说明
|
list
|
指定用于输出第一个下拉类表框中选项的集合
|
listKey
|
该属性指定集合元素中的某个属性作为第一个下拉列表框的value。如果集合是Map,则可以使用key和value指定Map对象的key和value作为复选框的value
|
listValue
|
该属性指定集合元素中的某个属性作为第一个下拉列表框的标签。如果集合是Map,则可以使用key和value指定Map对象的key和value作为第一个下拉列表框的标签
|
doubleList
|
指定用于输出第二个下拉类表框中选项的集合
|
doubleListKey
|
该属性指定集合元素中的某个属性作为第二个下拉列表框的value。如果集合是Map,则可以使用key和value指定Map对象的key和value作为复选框的value
|
doubleListValue
|
该属性指定集合元素中的某个属性作为第二个下拉列表框的标签。如果集合是Map,则可以使用key和value指定Map对象的key和value作为第二个下拉列表框的标签
|
doubleName
|
指定第二个下拉列表框的name属性
|
4)、head标签:用于生产HTML主要页面的head部分。
5)、optiontransferselect标签:该标签会生成两个列表选择框。并生成系列的按钮用于控制各选项在两个下拉列表之间的移动、升降。当提交表单时,两个列表选择框对应的请求参数都会被提交。
该属性有如下属性:
属性
|
说明
|
addAllToLeftLabel
|
设置全部移动到左边按钮上的文本
|
addAllToRightLabel
|
设置全部移动到右边按钮上的文本
|
addToLeftLabel
|
设置移动到左边按钮上的文本
|
addToRightLabel
|
设置移动到右边按钮上的文本
|
allowAddAllToLeft
|
设置是否出现全部移动到左边的按钮
|
allowAddAllToRight
|
设置是否出现全部移动到右边的按钮
|
allowAddToLeft
|
设置是否出现移动到左边的按钮
|
allowAddToRight
|
设置是否出现移动到右边的按钮
|
leftTitle
|
设置左边列表框的标题
|
rightTitle
|
设置右边列表框的标题
|
allowSelectAll
|
设置是否出现全部选择按钮
|
selectAllLabel
|
设置全部选择按钮上的文本
|
doubleList
|
设置用于创建第二个下拉选择框的集合
|
doubleListKey
|
设置用于创建第二个下拉列表框的选项value的属性
|
doubleListValue
|
设置用于创建第二个下拉列表框的选项label的属性
|
doubleName
|
设置第二个下拉选择框的name属性
|
doubleValue
|
设置第二个下拉选择框的value属性
|
doubleMultiple
|
设置第二个下拉选择框是否允许多选
|
list
|
设置用于创建第一个下拉选择框的集合
|
listKey
|
设置用于创建第一个下拉列表框的选项value的属性
|
listValue
|
设置用于创建第一个下拉列表框的选项label的属性
|
name
|
设置第一个下拉选择框的name属性
|
value
|
设置第一个下拉选择框的value属性
|
multiple
|
设置第一个下拉选择框是否允许多选
|
6)、select标签:该标签用于生成一个下拉列表框。
使用该标签是必须制定list属性。系统会使用list属性指定的集合来生成下拉列表框的选项
该标签有如下属性:
属性
|
说明
|
listKey
|
该属性指定集合元素中的某个属性作为复选框的value。如果集合是Map,则可以使用key和value指定Map对象的key和value作为复选框的value
|
listValue
|
该属性指定集合元素中的某个属性作为复选框的标签。如果集合是Map,则可以使用key和value指定Map对象的key和value作为复选框的标签
|
multiple
|
设置该列表是否允许多选
|
7)、radio标签:该标签用于生成多个单选框;
8)、optgroup标签:该标签用于生成一个下拉列表框的选项组:
该标签必须放在<s:select.../>标签中使用
9)、token标签:该标签用于阻止多次提交表单的问题。如果需要该标签起作用,则应该在Struts2的配置文件中启用TokenInterceptor拦截器
Token标签的实现原理是:在表单中增加一个隐藏域。每次加载该页面时,该隐藏域的值都会不同。而TokenInterceptor拦截器则拦截所有用户请求,如果两次请求时该token对应隐藏域的值相同,则会阻止表单提交。
10)、updownSelect标签:该标签用于生产可以上下移动的列表框;
该标签的属性如下:
属性
|
说明
|
allowMoveUP
|
是否显示“上移”按钮
|
allowMoveDown
|
是否显示“下移”按钮
|
allowSelectAll
|
是否显示“全选”按钮
|
moveUpLabel
|
设置“上移”按钮上的文本
|
moveDownLabel
|
设置“下移”按钮上的文本
|
selectAllLabel
|
设置“全选”按钮上的文本
|
读李刚《轻量级Java EE企业应用实战》
分享到:
相关推荐
Struts2 笔记12-20 浪曦风中叶
struts-2.3.4-all.zip 笔记
struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!
struts2学习笔记总结
Struts2-Spring-Hibernate整合,和Struts2,Hibernate的学习笔记。密码是kmp3314.
SSH笔记-Spring整合Struts2,作用是使用 IOC 容器来管理 Struts2 的 Action
struts标签-HTML标签笔记
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
Struts2学习笔记,介绍了struts2的基础部分
Struts2框架笔记,自己整理很详细 不看视频 看文档也能速度搞定Struts2
namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/") (http://localhost:8080/Struts2_0100_Introduction/) 四、 标签 是用来解决重名的问题,例如当系统的前台和后台都有一个action...
MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring).rar
struts2学习笔记,拦截器,action,所需jar包,从零开始
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
毕生学习struts2的学习笔记,整理了好久,实打实的干货
本人学习struts2的笔记,希望大家可以多多学习以后共同交流
SSH笔记-整合Spring2、Struts2、Hibernate4的完整步骤
Struts2框架
1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件...
Struts+spring+hibernate学习笔记! - Struts原理与实践