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学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
通过阅读文章《Groovy学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...
10. **安全考虑**:虽然Struts 2 提供了许多强大的功能,但也需要注意安全问题,例如 Struts 2 过去曾曝出过严重的漏洞,如 CVE-2017-5638(Struts Shocker)。因此,开发者应及时更新框架到最新版本,避免使用已知...
### Struts2 笔记12-20 浪曦风中叶 #### Struts2 第12 讲:StrutsListener(创建监听器) **1. 创建监听器** - **步骤一**:首先创建一个包 `com.test.listener`,接着在其中建立一个名为 `MyListener` 的 Java ...
Struts是Java Web开发中的一个开源框架,主要用来构建基于MVC(Model-View-Controller)模式的应用程序。...通过阅读Struts-笔记-1,你可以获得实践经验的总结,这对于进一步提升Struts开发技能是非常有帮助的。
- Struts2 还提供了标签库和 OGNL 表达式语言用于视图层的展示。 **2.4 拦截器(Interceptor)** - **作用**:在业务 Action 执行前后进行一系列的操作,如验证、数据填充等。 - **类型**: - **默认拦截器栈**:...
Struts2提供了一系列自定义的JSP标签,如`s:textfield`、`s:textarea`、`s:submit`等,这些标签简化了视图层的开发,增强了可读性和可维护性。它们与OGNL结合,能够方便地访问ValueStack中的数据。 **六、项目实践*...
- 学习如何使用 Struts2 提供的各种标签和插件来简化开发工作。 综上所述,Struts2 是一个功能强大且灵活的 MVC 框架,适用于构建复杂的 Web 应用程序。通过深入理解其核心概念和技术细节,开发者能够充分利用 ...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
标题"Struts2入门笔记1-4"暗示了这是一个关于Struts2基础知识的学习过程,涵盖了从基础到进阶的内容,可能包括了Struts2的核心概念、配置、拦截器以及实际应用等。 描述中提到,Struts2的控制实现是通过Filter来...
13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...
### Struts2框架知识点 #### Struts2框架概述 Struts2是一个开源的Web应用程序框架,基于MVC(Model-View-Controller)架构模式。它为Java Web开发者提供了一个强大的平台来构建高度可扩展的应用程序。Struts2的...
本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...
### Struts2学习笔记知识点详解 #### 一、准备工作及实例 **1. 解压struts-2.1.6-all.zip** - **Apps目录**:包含struts2自带的例子程序,适合初学者通过实际案例了解框架的基本用法。 - **Docs目录**:官方文档...
### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...
本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace Namespace在Struts2中主要用于组织和隔离Action,它决定了Action的访问路径。默认情况下,Namespace为...
标题 "记录-笔记-用ANT构建-struts-spring-hibernate" 暗示了这篇笔记主要涉及使用Apache Ant工具来构建一个整合了Struts、Spring和Hibernate的Java Web项目。Struts是MVC(模型-视图-控制器)框架,Spring是全面的...
Struts2框架笔记,自己整理很详细 不看视频 看文档也能速度搞定Struts2