struts2标签表格.docx
- 文档编号:8742975
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:11
- 大小:20.27KB
struts2标签表格.docx
《struts2标签表格.docx》由会员分享,可在线阅读,更多相关《struts2标签表格.docx(11页珍藏版)》请在冰豆网上搜索。
struts2标签表格
竭诚为您提供优质文档/双击可除
struts2,标签,表格
篇一:
struts2常用标签总结
struts2常用标签总结
一介绍
1.struts2的作用
struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。
实现了更好的代码复用。
struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。
struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。
包括最常用的jsp页面,也可以说Velocity和Freemarker等模板技术中的使用
2.struts2分类
(1)ui标签:
(userinterface,用户界面)标签,主要用于生成html元素标签,ui标签又可分为表单标签非表单标签
(2)非ui标签,主要用于数据访问,逻辑控制等的标签。
非ui标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出Valuestack中的值,完成国际化等功能的)
(3)ajax标签
3.struts2标签使用前的准备:
(1)在要使用标签的jsp页面引入标签库:
(2)在web.xml中声明要使用的标签这样是struts22.3.1.2版本的引入方式
struts2
org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecuteFilter
4.标签的使用
(1)property标签
用于输出指定的值:
以-->
以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。
以下用java代码代替的,访问某一个范围内的属性
//采用pagecontext对象往page范围内存入值来验证#attr搜索顺序是从page开始的,搜索的顺序为:
page,reques,session,application。
set存值的时候存到的是request中,在jsp页面中访问的时候不用加任何的标识符,即可直接访问,如果不同的作用域不一样了,
pagecontext.setattribute("name","laoowang",pagecontext.page_scope);
%>
假设在action中设置了不同作用域的类
不同的作用域的标签的访问:
获取的是requet中的对象值
第一种方式:
第二种方式:
第三种方式:
第四种方式:
第五种方式:
${requestscope.user1.realname}||${requestscope.user1[realname]}
第六种:
attr对象按page==>requestsessionapplictio找的
获取session中的值
第一种方式:
第二种方式:
第五种方式:
${sessionscope.user1.realname}||${sessionscope.user1[realname]}
获取application中的对象的值
第一种方式:
第二种方式:
第五种方式:
${applicationscope.user1.realname}||${applicationscope.user1[realname]}
(2)iterator标签的使用
第一种:
list集合
-->
第二种:
map集合中的使用
map集合
语法格式:
#{key:
value,key1:
value1,key2:
value2,.....}
以上的语法中就直接生成了一个map类型的集合,该map对象中的每个key-value对象之间用英文的冒号隔开
,多个元素之间用逗号分隔。
-->
遍历map:
:
:
:
\
第三种:
集合的变量
遍历集合:
:
:
3000}">
3000)}">
注:
users是user的对象,price是user中的一个属性
简述一下iterator的介绍:
iterator标签用于对集合进行迭代,这里的集合包含list、set和数组。
redblue>
value:
可选属性,指定被迭代的集合,如果没有设置该属性,则使用Valuestack栈顶的集合。
id:
可选属性,指定集合里元素的id。
status:
可选属性,该属性指定迭代时的iteratorstatus实例。
该实例包含如下几个方法:
intgetcount(),返回当前迭代了几个元素。
intgetindex(),返回当前迭代元素的索引。
booleaniseven(),返回当前被迭代元素的索引是否是偶数
booleanisodd(),返回当前被迭代元素的索引是否是奇数
booleanisFirst(),返回当前被迭代元素是否是第一个元素。
booleanislast(),返回当前被迭代元素是否是最后一个元素。
(3)ifelse语句的使用
23
21
都不等
(4)uRl标签
laowangang
12
测试uRl
以上的两个标签的作用是一样的。
(5)data标签
pagecontext.setattribute("birth",new
date(200,03,10),pagecontext.Request_scope);
%>
这个标签是按照format的格式去输出的。
(6)表单
from表单
listValue
-->
篇二:
struts2标签用法
struts2标签库讲解
要使用struts2的标签,只需要在jsp页面添加如下一行定义即可:
struts2的标签共分为五大类:
一、逻辑控制标签
用于进行逻辑控制输出。
主要分以下几类:
1)条件标签:
用于执行基本的条件流转
:
拥有一个test属性,其表达式的值用来决定标签里内容是否显示。
欢迎hzd
123
abc
2)迭代标签:
用于遍历集合(java.util.collection)或者枚举值(java.util.iterator)类型的对象,value属性表示集合或枚举对象,status属性表示当前循环的对象,在循环体内部可以引用该对象的属性
姓名:
年龄:
3)组合标签:
用于将多个枚举值对象进行叠加,形成一个新的枚举值列表如将3个列表对象进行了组合,形成新的列表对象:
输出:
4)分割标签:
用于将一个字符串进行分隔,产生一个枚举值列表
下面的代码将分隔为3个字符串,然后循环输出
5)合并标签:
用于将多个枚举值按照数组的索引位置进行合并
--设mylist1列表中有a,b,c三个元素
--设mylist2列表中有1,2,3三个元素
合并后新的列表的元素及其顺序为:
a,1,b,2,c,3
6)排序标签:
用于对一组枚举值进行排序,属性parator的比较器,该比较器可以是对应action页面中的一个比较器变量,source指定要排序的列表对象
7)子集标签:
用于取得一个枚举列表的子集,象,start用于指定起始检索的索引位置,count用于指定检索的结果数量,性必须是一个org.apache.struts2.util.subsetiteratorFilter.decider类的子类实例,用以指定检索的条件。
例如在action中提供了以下方法用来取得一个decider对象:
publicdecidergetdecider()
{
returnnewdecider(){
publicbooleandecide(objectelement)throwsexception{
inti=((integer)element).intValue();
return(((i%2)==0)true:
false);
}
};
}
然后引用该对象筛选子集:
或者不使用decider对象:
二、数据输出标签
数据输出标签用以输出页面中的元素、属性、隐含变量等,即包括静态文本的输出,也包括struts2集成的各种变量的输出。
1)链接标签:
用于创建一个标签表示该链接执行时的javascript提示函数,href表示跳转地址.
2)action标签:
可以直接调用action类中的函数,性用于指向数,executeResult属性表示是否执行结果集的跳转
--表示执行loginaction的默认处理方法execute()
--表示执行loginaction的处理方法login()
3)javabean标签:
用于创建一个javabean对象,javabean类全名,var表示变量的实例名,并可以包含设置实例化输入参数
--为该javabean的构造方法传递参数
4)日期标签:
用以输出一个格式化的日期对象表示输出的日期格式
--默认格式
5)调用标签:
用以输出页面的值栈调试信息,通常在进行程序调用时使用,便于查找jsp页面中的错误
6)引用资源文件标签:
用于加载资源包到值栈,它可以允许何资源包的信息,而不只是当前action相关联的资源包。
name属性用以指定资源包的类路径
如xxx.xxx.xxx.applicationmessages中定义了标签:
helloword=欢迎您!
则可以这样引用:
7)包含页面标签:
用来包含一个servlet的输出(servlet或jsp页面),使用属性指定包含页名称,可以使用
hzd--参数username=hzd给test.jsp页面
8)传递参数标签:
用来为其他标签提供参数,所以一般是嵌套在其它标签的内部,name属性用来指定参数名称,value(struts2,标签,表格)(可选)属性用来指定参数值
--这种方式的参数值会以string格式放入stackhzd--这种方式的参数值会以object的格式放入stack
9)值栈标签:
用以加入一个值到值栈中
--为user指定name属性
--为user指定age属性
10)变量赋值标签:
赋予变量一个特定范围内的值,量的名字示变量的作用域(application.session.request.page.action),value变量的值
11)国际化标签:
用于输出国际化信息属性指定国际化资源文件中消息文本的key,可以与标签结合使用
--它会按照一定的顺序查找资源文件,直到找到定义hellowword标签的资源文件为止
12)链接标签:
用于创建一个uRl链接,并可以通过标签提供request参数
hzd
13)属性标签:
用以输出属性的值,并拥有一个,在value对象不存在时显示。
escape属性为true,来输出原始的html文本
三、html表单标签
html标签都拥有以下3个设置样式的属性。
templatedir:
执行模板路径
theme:
指定主题名称,可选值包括simple、xhtml、ajax等
template:
指定模板名称
使用html表单标签会生成大量格式化的html代码,这些代码是由struts2的模板生成的,这样的好处是可以让我们的jsp代码十分简单,只需要配置使用不同的主题模板,就可以显示不同的页面样式。
struts2默认提供了5种主题(在此不做详细介绍):
simple主题:
最简单的主题
xhtml主题:
默认主题,使用常用的html技巧
cssxhtml主题:
使用css实现的xhtml主题
archive主题:
使用文档生成主题
篇三:
struts2数据标签
struts2数据标签
8.2数据标签
数据标签更关注如何从值栈上取值或者向值栈赋值。
8.2.1property标签
1:
功能:
用来输出ognl表达式的值。
2:
属性
property标签的主要属性:
value:
用来获取值的ognl表达式,如果value属性值没有指定,那么将会被设定为top,也就是返回位于值栈最顶端的对象。
default:
如果按照value属性指定的ognl求值后返回的是空值,但是你仍然希望输出某些内容,那么就可以使用default属性来指定这些内容escape:
是否转义html,默认为trueescapejavascript:
是否转义javascript,默认为false
3:
属性value和default的使用
直接看示例:
第一个是有value值的,应该输出value所设置的ognl表达式运算后的值;第二个虽然设置了value,但是value所设置的ognl表达式是找不到值的,那么应该输出default的值;第三个就没有设置value属性,那么应该输出位于值栈最顶端的对象。
示例代码如下:
java代码:
查看复制到剪贴板打印1.
2. 3.request.setattribute("request","请求的属性值");
4.%>
5.输出value值:
6.
7.输出缺省值:
8.
9.输出栈顶的对象:
运行结果如下图所示:
图8.1示例property标签
4:
属性escape的使用
接下来说明一下escape属性,它指明了是否把要显示的值按照html的转义规则进行转义。
看如下的示例,一个是转义的,一个是不转义的,示例代码如下:
java代码:
查看复制到剪贴板打印1.
2."/>
3."escape="false"/>
首先要注意"/>中的value里面的值为,这对单引号的意思是,单引号里面的东西不按照ognl表达式来解析,可以直接看成一个字符串。
那么,现在的两句,要打印的内容一样,只是上面的一句按照html转义,而下面的一句不按照html转义。
因此,上面的可以正确打印出字符串,而下面的就是打出横线来。
如图:
图8.2的escape属性指定了是否按照html进行转义
为何会是这样呢?
查看一下页面对应的源代码,你就什么都明白了,页面对应的源代码如下:
java代码:
查看复制到剪贴板打印1.
2.
3.
4.inserttitlehere
5.
6.
7.
8.
9.
10.
11.
12.
你会发现,转义的那个输出变成了“”,不转义的那个是直接输出成“”,其实转义,就是把html中的一些特殊字符用已经定义好的实体进行替换的过程,常见的html转移字符如下列表:
html中还有很多需要转移的字符,这里就不去赘述了,可查阅相关的资料。
8.2.2set标签
1:
功能:
对设置的表达式进行求值,并将结果赋给特定作用域中的某个变量。
简单点说,set标签类似于定义一个变量,并赋值。
set标签有很多应用的地方,比如一个对象在ognl上的访问层次较深,就可以使用set标签给它定义成一个变量,这样就可以保证在多次引用它的时候更方便。
2:
属性
set标签的主要属性:
id:
已过时,请用var代替。
name:
已过时,请用var代替。
var:
变量名,可以在ognl表达式中使用这个名称来引用存放到值栈的这个对象。
scope:
变量的生存周期,可以选择application、session、request、page或action,默认为action。
value:
设置给变量的值,可以是常量,也可以是ognl表达式
3:
属性var和value的使用
假如现在session中有一个叫user的属性,要访问它的name属性和age属性,不用set标签的话,写法如下:
java代码:
查看复制到剪贴板打印1.
2.;s:
propertyvalue="#session.user.age"/>
如果使用了set标签,可以给session中的user属性定义一个变量,名称为tempuser,这样在以后直接访问这个tempuser就可以了,示例如下:
java代码:
查看复制到剪贴板打印1.
2.
3.
请注意,使用tempuser这个变量名的时候,需要在前面加上#号。
再来一个示例,比如要在页面定义一个int型的变量,然后用标签来实现类似于i++的功能,该怎么实现呢?
示例代码如下:
java代码:
查看复制到剪贴板打印1.
2.
3.输出i值:
4.
5.
6.输出i++后的值:
运行测试一下,效果如图所示:
图8.3示例set标签
4:
属性scope的使用
set标签的scope属性有如下选择:
application:
表示这个变量的生存周期是servlet中的application范围,也就是servletcontext范围session:
表示这个变量的生存周期是会话范围request:
表示这个变量的生存周期是请求范围page:
表示这个变量的生存周期是当前页面范围action:
表示这个变量的生存周期是当前的actioncontext范围简单的示范一下,在第一个页面中定义变量,当然要设置scope,示例如下:
java代码:
查看复制到剪贴板打印1.
2.
3.
4.
5.
6.运行后跳转到的结果页面,示例如下:
java代码:
查看复制到剪贴板打印
1.
2.输出aplication值:
3.
4.输出session值:
5.
6.输出request值:
7.
8.输出page值:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts2 标签 表格