Struts2常用标签总结

002

一 介绍

003

1.Struts2的作用

004

Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。

005

Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说Velocity和FreeMarker等模板技术中的使用

006

2.Struts2分类

007

(1)UI标签:(User Interface, 用户界面)标签,主要用于生成HTML元素标签,UI标签又可分为表单标签非表单标签

008

(2)非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出ValueStack中的值,完成国际化等功能的)

009

(3)ajax标签

010

3.Struts2标签使用前的准备:

011

(1)在要使用标签的jsp页面引入标签库:

012

<%@ taglib uri="/struts-tags" prefix="s"%>

013

(2)在web.xml中声明要使用的标签 这样是struts2 2.3.1.2版本的引入方式

014

015

struts2

016

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

017

018

4.标签的使用

019

(1)property标签

020

用于输出指定的值:

021


022


023

024

以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。

025

026

027

以下用java代码代替的,访问某一个范围内的属性

028

<%

029

//采用pageContext对象往page范围内存入值来 验证#attr搜索顺序是从page开始的 ,搜索的顺序为:page,reques,session,application。

030

set存值的时候存到的是request中,在jsp页面中访问的时候不用加任何的标识符,即可直接访问,如果不同的作用域不一样了,

031

pageContext.setAttribute("name", "laoowang", PageContext.PAGE_SCOPE);

032

%>

033

034

035

036

假设在action中设置了不同作用域的类

037

不同的作用域的标签的访问:

038

039

获取的是requet中的对象值

040

第一种方式:

041


042

第二种方式:

043


044

第三种方式:

045


046

第四种方式:

047


048

第五种方式:${requestScope.user1.realName } || ${requestScope.user1['realName'] }

049

050

第六种:

051

attr对象按page==> request sessionapplictio找的

052

053

054

获取session中的值

055

第一种方式:

056


057

第二种方式:

058

059

060

第五种方式:${sessionScope.user1.realName } || ${sessionScope.user1['realName'] }

061

062

获取application中的对象的值

063

第一种方式:

064


065

第二种方式:

066

067

068

第五种方式:${applicationScope.user1.realName } || ${applicationScope.user1['realName'] }

069

070

(2)iterator标签的使用

071

第一种:list集合

072

073

074

077

078

079

080

081

082

083

084

085

086

087

088

第二种:map集合中的使用

089

Map集合

090

095

096

097

098

遍历Map:

099


100

101

:::

102


103

\

104

105

第三种:集合的变量

106

遍历集合:::

107

108

109

110

111

112

113

114

115

116


117

118

119

120

121

注:users是User的对象,price是User中的一个属性

122

123

简述一下iterator的介绍:

124

iterator标签用于对集合进行迭代,这里的集合包含List、Set和数组。

125

126

127

redblue>

128


129

130

value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。

131

id:可选属性,指定集合里元素的id。

132

status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:

133

int getCount(),返回当前迭代了几个元素。

134

int getIndex(),返回当前迭代元素的索引。

135

boolean isEven(),返回当前被迭代元素的索引是否是偶数

136

boolean isOdd(),返回当前被迭代元素的索引是否是奇数

137

boolean isFirst(),返回当前被迭代元素是否是第一个元素。

138

boolean isLast(),返回当前被迭代元素是否是最后一个元素。

139

140

141

(3)if else语句的使用

142

143

144

23

145

146

147

21

148

149

150

都不等

151

152

153

(4)URL标签

154

155

156

laowangang

157

12

158

159

测试URL

160

161

以上的两个标签的作用是一样的。

162

(5)data标签

163

<%

164

pageContext.setAttribute("birth",new Date(200,03,10),PageContext.REQUEST_SCOPE);

165

%>

166

167

168

这个标签是按照format的格式去输出的。

169

170

(6)表单

171

172

173

from表单

174

175

176

177

178

179

180

181

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

205

206

207

<%

208

//从服务器传过来值

209

pageContext.setAttribute("sex","男",PageContext.REQUEST_SCOPE);

210

pageContext.setAttribute("sex1","男",PageContext.REQUEST_SCOPE);

211

%>

212

213

214

215

216

217

218

219

220

221

---恢复内容结束---

编辑器加载中...