- 浏览: 7258444 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
用过struts1.x的人都知道,标签库有html、bean、logic、tiles,
而struts2.0里的标签却没有分类,只用在jsp头文件加上
<%@ taglib prefix="s" uri="/struts-tags" %>
就能使用struts2.0的标签库
下面就介绍下每个标签的用法(有错请指正):
A:
<s:a href=""></s:a>-----超链接,类似于html里的<a></a>
<s:action name=""></s:action>-----执行一个view里面的一个action
<s:actionerror/>-----如果action的errors有值那么显示出来
<s:actionmessage/>-----如果action的message有值那么显示出来
<s:append></s:append>-----添加一个值到list,类似于list.add();
<s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajax
B:
<s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值
C:
<s:checkbox></s:checkbox>-----复选框
<s:checkboxlist list=""></s:checkboxlist>-----多选框
<s:combobox list=""></s:combobox>-----下拉框
<s:component></s:component>-----图像符号
D:
<s:date/>-----获取日期格式
<s:datetimepicker></s:datetimepicker>-----日期输入框
<s:debug></s:debug>-----显示错误信息
<s:div></s:div>-----表示一个块,类似于html的<div></div>
<s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框
E:
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>-----这3个标签一起使用,表示条件判断
F:
<s:fielderror></s:fielderror>-----显示文件错误信息
<s:file></s:file>-----文件上传
<s:form action=""></s:form>-----获取相应form的值
G:
<s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用
H:
<s:head/>-----在<head></head>里使用,表示头文件结束
<s:hidden></s:hidden>-----隐藏值
I:
<s:i18n name=""></s:i18n>-----加载资源包到值堆栈
<s:include value=""></s:include>-----包含一个输出,servlet或jsp页面
<s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入
<s:iterator></s:iterator>-----用于遍历集合
L:
<s:label></s:label>-----只读的标签
M:
<s:merge></s:merge>-----合并遍历集合出来的值
O:
<s:optgroup></s:optgroup>-----获取标签组
<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框
P:
<s:param></s:param>-----为其他标签提供参数
<s:password></s:password>-----密码输入框
<s:property/>-----得到'value'的属性
<s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性
R:
<s:radio list=""></s:radio>-----单选按钮
<s:reset></s:reset>-----重置按钮
S:
<s:select list=""></s:select>-----单选框
<s:set name=""></s:set>-----赋予变量一个特定范围内的值
<s:sort comparator=""></s:sort>-----通过属性给list分类
<s:submit></s:submit>-----提交按钮
<s:subset></s:subset>-----为遍历集合输出子集
T:
<s:tabbedPanel id=""></s:tabbedPanel>-----表格框
<s:table></s:table>-----表格
<s:text name=""></s:text>-----I18n文本信息
<s:textarea></s:textarea>-----文本域输入框
<s:textfield></s:textfield>-----文本输入框
<s:token></s:token>-----拦截器
<s:tree></s:tree>-----树
<s:treenode label=""></s:treenode>-----树的结构
U:
<s:updownselect list=""></s:updownselect>-----多选择框
<s:url></s:url>-----创建url
Struts2.0标签大体可分为以下几类:
1.UI(User Interface,用户界面)标签:主要生成HTML元素标签;
(1)表单标签:用于生成HTML页面的form元素,以及普通表单元素的标签。
(2)非表单标签:用于生成页面上的树、Tab也等标签。
2.非UI标签:主要用于数据访问、逻辑控制等的标签;
(1)流程控制标签:主要包含用于实现分支、循环等流程控制的标签。
(2)数据访问标签:主要包含与输出ValueStack中的值,完成国际化等功能的标签。
3.Ajax标签:用于Ajax支持的标签;
一、使用Struts2标签库的准备
在工程中加入Struts2的Jar文件。
修改Web.xml文件如:
1<?xml version="1.0" encoding="UTF-8"?>
2<web-app version="2.4"
3 xmlns="http://java.sun.com/xml/ns/j2ee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
6 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7 <filter>
8 <filter-name>struts2</filter-name>
9 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
10 </filter>
11 <filter-mapping>
12 <filter-name>struts2</filter-name>
13 <url-pattern>/*</url-pattern>
14 </filter-mapping>
15</web-app>二、在使用标签时别忘了用taglib编译指令导入Struts2的标签库定义
1<%="s" uri="/struts-tags" %>三、下面我就开始探讨一下Struts2.0标签库控制标签的使用。
1.if/elseif/else标签
1<%@ page language="java" pageEncoding="ISO-8859-1"%>
2<%@ taglib prefix="s" uri="/struts-tags" %>
3<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4<html>
5 <head>
6 <title>If_Else</title>
7 </head>
8 <body>
9 <s:set name="name" value="#parameters.name[0]"></s:set>
10 <s:if test="#name=='woailuo'">
11 woailuo is here!
12 </s:if>
13 <s:elseif test="#name=='mingren'">
14 mingren is here!
15 </s:elseif>
16 <s:else>
17 zuozhu is here!
18 </s:else>
19 </body>
20</html>2.Iterator标签
Iterator主要对集合进行迭代,包括List、Set、Map;它的属性有3个:
(1)value:可选属性,value指定被迭代的集合,被迭代的集合通常用OGNL表达式指定。如没有value属性,则使用ValueStatus栈顶的集合。
(2)id:可选属性,指定集合中的元素的ID。
(3)status:可选属性,给属性指定迭代的IteratorStatus实力,该实例包含几个方法:int getCount()返回当前迭代了几个元素;int getIndex()返回当前迭代元素的索引;Boolean isEven()返回当前迭代的元素是否是偶数;boolean isOdd()返回是否是奇数;boolean isFirst()是否是第一个元素;boolean isLast()是否是最后一个。
1<%@ page language="java" pageEncoding="utf-8"%>
2<%@ taglib prefix="s" uri="/struts-tags" %>
3<html>
4 <head>
5 <title>iterator</title>
6 </head>
7 <body>
8 <table border="1" width=100>
9 <s:iterator value="{'struts2.0','hibernate','ajax','spring'}" id="name" status="st">
10 <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
11 <td><s:property value="#st.count"/><s:property value="name"/></td>
12 </tr>
13 </s:iterator>
14 </table>
15 </body>
16</html>3.append标签
append标签用于将多个集合对象拼接起来,组合一个新的集合。从而通过一个<s:iterator.../>完成对多个集合的迭代。
1<%@ page language="java" pageEncoding="utf-8"%>
2<%@ taglib prefix="s" uri="/struts-tags" %>
3<html>
4 <head>
5 <title>iterator</title>
6 </head>
7 <body>
8 <table border="1" width="100">
9 <s:append id="newList">
10 <s:param value="{'struts2.0','hibernate','ajax','spring'}"/>
11 <s:param value="{'javaScript','sql server'}"/>
12 </s:append>
13 <s:iterator value="#newList" status="st">
14 <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
15 <td><s:property value="#st.count"/><s:property/></td>
16 </tr>
17 </s:iterator>
18 </table>
19 </body>
20</html>
214.merge标签
merge标签与append标签非常相似,他们都是将多个集合拼接成一个。他们的区别在于拼接后集合元素的顺序不同。
append方式拼接,新元素的顺序为:
(1)第一个集合中的第一个元素;
(2)第一个集合中的第二个元素;
(3)第二个集合中的第一个元素;
(4)第二个集合中的第二个元素;
merge方式拼接,新元素的顺序为:
(1)第一个集合中的第一个元素;
(2)第二个集合中的第一个元素;
(3)第一个集合中的第二个元素;
(4)第二个集合中的第二个元素;
5.subset标签
subset标签用于取得集合的子集,它的属性有如下:
(1)count:可选属性,指定子集中元素的个数,默认取得全部;
(2)source:可选属性,指定源集合,默认取得ValueStack栈顶的集合;
(3)start:可选属性,指定子集从源集合第几个开始截取,默认从第一个截取(start为0);
(4)decider:可选属性,是否选中该属性;
1<%@ page language="java" pageEncoding="utf-8"%>
2<%@ taglib prefix="s" uri="/struts-tags"%>
3<html>
4 <head>
5 <title>iterator</title>
6 </head>
7 <body>
8 <table border="1" width="100">
9 <s:subset
10 source="{'struts2.0','hibernate','ajax','spring','javaScript'}"
11 count="3" start="1" id="subset">
12 <s:iterator status="st">
13 <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
14 <td>
15 <s:property value="#st.count" />
16 <s:property/>
17 </td>
18 </tr>
19 </s:iterator>
20 </s:subset>
21 </table>
22 </body>
23</html>
246.关于控制标签还有generator标签和sort标签
他们的作用分别是:generator是将指定的字符串按指定的分隔符分隔成多个子串;sort是对指定的集合元素进行排序必须提供自己的排序规则。
因为这两个用到的比较少,所以就不罗嗦了。
set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内
name 是必填属性,是重新生成的新变量的名字
scope 可选属性,指定新变量被放置的范围,可以接受application,session,request,page,action 这5个值 没有指定默认是Stack Context中
value 可选属性,指定变量的值 如果没有指定,使用ValueStack栈顶的值赋给新变量
id 可选属性,指定新元素的引用ID
下面是个例子:
<!-- 使用bean标签定义一个javaBean实例--!>
<s:bean name="lee.Person" id="p">
<s:param name="name" value="zhangsan"/>
<s:param name="age" value="29"/>
</s:bean>
将p放入默认范围内
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
将p放入application范围内。
<s:set value="#p" name="test" scope="application"/>
<s:property value="#attr.test.name"/> <br>
<s:property value="#attr.test.age"/> <br>
将p放入session范围内。
<s:set value="#p" name="test" scope="session"/>
${sessionScope.test.name} <br>
${sessionScope.test.age} <br>
发表评论
-
整合Struts2+JasperReport Web报表应用示例
2013-04-22 13:56 2253整合Struts2+JasperReport Web报表应用 ... -
Struts2+JFreeChart制作图标
2011-11-26 13:52 2052前言 关于Struts2入门以及提高等在这里就不介绍了 ... -
Struts2.0中获取项目的上下文的两种方式
2010-01-19 13:42 3246Struts2.0中获取项目的上下文的两种方式 方 ... -
Struts2.0中通过OGNL访问常量必须注意的一个配置
2010-01-19 13:34 2595在项目的开始阶段,由于没有学习Struts2.0中OGNL的 ... -
Struts2.0 中值栈的实现以及解析OGNL以及值堆栈的原理
2010-01-14 13:19 4630OGNL的值栈实现的堆栈动态OGNL的表达式。何时设置 ... -
关于Struts2.0 标签中采用%{}%的处理原理
2010-01-14 13:08 2663项目中采用struts2.0 ... -
struts 2配置文件解说
2010-01-13 13:09 1371struts 2框架有两个核心配置文件: struts.xml ... -
struts2.0的ognl表达式 研究
2010-01-13 13:05 2615OGNL —— 完美的催化剂 为了解决数据从 ... -
Struts2和OGNL
2010-01-13 10:57 2017OGNL是XWork引入的一个非常有效的数据处 ... -
Struts2参数传递
2010-01-13 10:45 2397本篇主要通过实例来讲述Struts2中各种各样的参数传递。这个 ... -
Struts2.0的不同版本针对枚举转换器应用
2010-01-13 10:39 2808Struts2.0 的Apache项目中从Strut ... -
Struts2.0 中支持的基本数据类的转换的类XWorkBasicConverter的分析
2010-01-13 10:25 4547项目中Struts2.1.6不支持基本数据类型的自动转换, ... -
Struts2.0加載配置順序
2009-12-28 13:33 2477Struts2.0默認的加载顺序: Constants ... -
Struts2.0的IOC方式注入SessionAware, CookiesAware
2009-12-10 19:59 3961在Action实现相应的 private Map<S ... -
Struts2工作原理和框架扩展点
2009-12-08 18:49 3833上图来源于Struts2官方站点,是Struts ... -
Struts2.0 和JQuery實現AjaX的調用功能
2009-11-27 12:47 2326开发过程忽略: 重点注意点解释以下: (1)将Ac ... -
在Struts2.0中批量操作(update Or Add)的實現和注意點
2009-11-15 16:41 3003在項目中,需要針對一批数据进行或添加或着修改操作。使用S ... -
在Struts2.0 中将Enum对象与组件的绑定
2009-08-19 13:05 4121在项目使用一个下拉框绑定或单选或复选框的绑定的应用: ... -
struts2 标签针对字符串截取的处理
2009-06-18 13:16 6157struts2 标签截取字符串的功能 <td> ... -
Struts2中 用OGNL表达式
2009-06-18 12:40 3439具体记录如下:<s:set ...
相关推荐
介绍学习struts2标签
struts2的初学者,内容不多,望各位高手切勿笑话小弟。
STRUTS2学习文档.pdf 对Struts2的一些配置文件进行了详细的说明。 Struts2―表单验证validate(html)对validate的type属性校验类型以及param 做了详细的解释说明。 struts2和struts的比较 让你更清楚的知道struts2...
struts2标签库讲解供大家学习,一起进步
本文讲述了使用Struts 2标签的注意事项,并介绍了学习Struts 2标签比较权威的网站。
struts2 标签 学习,介绍struts2 标签的使用,详细介绍
struts2标签库 struts2标签库,最近在做小项目,用到了struts2技术,和大家共同学习
Struts2学习之二--Struts2标签介绍
本人在网上收集的struts2 的学习资料,包括:struts2权威指南、struts2标签简单说明、struts2中文教程。
struts2介绍之使用连接标签 struts2入门 struts2进阶学习一 struts2进阶学习二 struts2进阶学习三 struts2进阶学习四 struts2进阶学习一 struts2进阶学习一 struts2进阶学习一 struts2进阶学习一
《Struts 2完全学习手册》全面讲述Struts 2开发框架的知识,包括Struts 2中配置文件的详细讲解、国际化与异常处理、数据类型的转换、数据的输入校验、Struts 2强大的标签库、Struts 2中文件的上传与下载、Struts 2对...
讲解了struts2.0标签的详细使用,希望对你学习有点帮助
比较完整的jsp Struts2标签。有助于java的学习。
Struts Tiles标签学习PPT教学文档
struts 初步认识Struts2并部署验证 struts2 将要进行自定义类型转换的点数据从1个增加到3个 ...struts9 进行局部性的验证,使用struts2标签库对register.jsp进行改进 strrts10 第七讲struts2中的案例
struts1.2标签实例超经典,方便大家学习,对初学者有很好帮助
struts2入门教程,对struts2标签作了详细的解析,对于初学struts是十分实用的教程
struts2标签和解释及其说明 嘿嘿其实就是那个下载人数最多的那个的东西..他要10分啊..太心黑了..呵呵我借鉴哈和你们一起分享哈!但是我花了10分不能不挣回来吧!大家一人补偿我点就好了!.......一起学习!
struts 2 标签的应用,包含基本所有的struts 2的标签,可以供大家学习