Struts2数据标签Word格式文档下载.docx

上传人:b****7 文档编号:22932206 上传时间:2023-02-06 格式:DOCX 页数:19 大小:333.11KB
下载 相关 举报
Struts2数据标签Word格式文档下载.docx_第1页
第1页 / 共19页
Struts2数据标签Word格式文档下载.docx_第2页
第2页 / 共19页
Struts2数据标签Word格式文档下载.docx_第3页
第3页 / 共19页
Struts2数据标签Word格式文档下载.docx_第4页
第4页 / 共19页
Struts2数据标签Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Struts2数据标签Word格式文档下载.docx

《Struts2数据标签Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Struts2数据标签Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

Struts2数据标签Word格式文档下载.docx

3. 

request.setAttribute("

request"

"

请求的属性值"

);

4.%>

5.输出value值:

<

s:

property 

value="

#request['

request'

]"

/>

6.<

br>

7.输出缺省值:

request2'

default="

缺省值"

8.<

9.输出栈顶的对象:

property/>

运行结果如下图所示:

图8.1 

示例property标签

4:

属性escape的使用

接下来说明一下escape属性,它指明了是否把要显示的值按照HTML的转义规则进行转义。

看如下的示例,一个是转义的,一个是不转义的,示例代码如下:

'

hr>

"

3.<

escape="

false"

首先要注意<

propertyvalue="

中的value里面的值为'

,这对单引号的意思是,单引号里面的东西不按照OGNL表达式来解析,可以直接看成一个字符串。

那么,现在的两句<

,要打印的内容一样,只是上面的一句按照HTML转义,而下面的一句不按照HTML转义。

因此,上面的可以正确打印出字符串<

,而下面的就是打出横线来。

如图:

图8.2<

的escape属性指定了是否按照HTML进行转义

为何会是这样呢?

查看一下页面对应的源代码,你就什么都明白了,页面对应的源代码如下:

html>

head>

meta 

http-equiv="

Content-Type"

content="

text/html;

charset=gb2312"

>

4.<

title>

Insert 

title 

here<

/title>

5.<

/head>

body>

7. 

8.&

lt;

hr&

gt;

9.<

10. 

11.<

/body>

12.<

/html>

你会发现,转义的那个输出变成了“&

”,不转义的那个是直接输出成“<

”,其实转义,就是把HTML中的一些特殊字符用已经定义好的实体进行替换的过程,常见的HTML转移字符如下列表:

HTML中还有很多需要转移的字符,这里就不去赘述了,可查阅相关的资料。

8.2.2 

set标签

对设置的表达式进行求值,并将结果赋给特定作用域中的某个变量。

简单点说,set标签类似于定义一个变量,并赋值。

set标签有很多应用的地方,比如一个对象在OGNL上的访问层次较深,就可以使用set标签给它定义成一个变量,这样就可以保证在多次引用它的时候更方便。

set标签的主要属性:

∙id:

已过时,请用var代替。

∙name:

∙var:

变量名,可以在OGNL表达式中使用这个名称来引用存放到值栈的这个对象。

∙scope:

变量的生存周期,可以选择application、session、request、page或action,默认为action。

设置给变量的值,可以是常量,也可以是OGNL表达式

属性var和value的使用

假如现在Session中有一个叫user的属性,要访问它的name属性和age属性,不用set标签的话,写法如下:

#session.user.name"

2.;

#session.user.age"

如果使用了set标签,可以给Session中的user属性定义一个变量,名称为tempUser,这样在以后直接访问这个tempUser就可以了,示例如下:

set 

var="

tempUser"

#session.user"

#tempUser.name"

#tempUser.age"

请注意,使用tempUser这个变量名的时候,需要在前面加上#号。

再来一个示例,比如要在页面定义一个int型的变量,然后用标签来实现类似于i++的功能,该怎么实现呢?

i"

1"

3.输出i值:

#i"

#i+1"

6.输出i++后的值:

运行测试一下,效果如图所示:

图8.3 

示例set标签

属性scope的使用

set标签的scope属性有如下选择:

∙application:

表示这个变量的生存周期是Servlet中的Application范围,也就是ServletContext范围

∙session:

表示这个变量的生存周期是会话范围

∙request:

表示这个变量的生存周期是请求范围

∙page:

表示这个变量的生存周期是当前页面范围

∙action:

表示这个变量的生存周期是当前的ActionContext范围

简单的示范一下,在第一个页面中定义变量,当然要设置scope,示例如下:

v1"

scope="

application"

aplication范围的值'

v2"

session"

session范围的值'

v3"

request范围的值'

v4"

page"

page范围的值'

v5"

action"

action范围的值'

运行后跳转到的结果页面,示例如下:

2.输出aplication值:

#application['

v1'

4.输出session值:

#session['

v2'

6.输出request值:

v3'

7.<

8.输出page值:

#attr['

v4'

10.输出action值:

#v5"

上述写法中,尤其要注意输出page的值,用的是“#attr”,而不是“#page”。

运行测试一下,结果如下图所示:

图8.4 

示例set标签的scope属性

你会发现request、page、action三个范围内都没有值,为什么呢?

原因很简单,上面的示例是在上一个页面展示的时候设置的request值,当提交跳转到结果页面的时候,这是另外一个request了,因此request里面没有值是正常的。

而page里面没有值就更好理解了,已经是不同的页面了,当然没有值了。

action范围里面没有值,是因为,Struts2会为每次请求创建不同的Action实例,请求不同,那么Action实例也就不同,自然action范围也就没有值了。

那么要如何才能让他们有值呢?

一个最简单的办法,就是在结果页面,在输出数据前重新设置这些值,示例如下:

2. 

name="

6. 

7.输出aplication值:

9.输出session值:

10.<

11.输出request值:

13.输出page值:

14.<

15.输出action值:

再次运行测试,结果如下图所示:

图8.5 

示例set标签的scope属性2

这就能获取到所有的值了。

8.2.3push标签

用来将对象的引用压入值栈中。

这也是很有用的,比如:

如果一个对象访问层次过深的时候,可以用push标签来做访问的简化。

其做法和set标签不同,push标签是把指定的对象放到值栈的栈顶,这样在访问这个对象的时候,就可以直接访问它了。

属性:

push标签的主要属性:

用来指定放到值栈栈顶的对象。

示例

沿用前面的示例,假如Session中有一个叫user的属性,需要访问它的name属性和age属性。

如果使用push标签的话,写法示例如下:

push 

name"

age"

/s:

push>

请和set标签的写法对比一下,这两个标签都常用在简化OGNL访问的时候,但是有区别的:

∙push标签的作用域是在自己标签范围内,两个<

都是它的子元素,而set标签的作用域是ActionContext,所以两个<

只要在它后面即可。

∙push标签内的<

直接引用这个对象的属性即可,而set标签后的<

还要属性名前加上set标签为对象取的变量名称。

很明显,当在需要设置多个数据的时候,push标签会更简单。

8.2.4 

bean与param标签

bean标签的功能:

用来创建JavaBean实例,并将其压入值栈中,可以添加param标签。

param标签的功能:

用来为其它标签添加参数化设置的功能,比如为bean标签初始化JavaBean的属性的值。

但是请注意一点:

param标签主要用来配合其它标签来指定参数,并不是只能与bean标签连用。

bean标签的主要属性:

指定了要创建的JavaBean的全类名,必须要设置

引用这个JavaBean实例的名称,在bean标签创建JavaBean实例之后,将这个实例压入值栈中,其key值就是这个var指定的值。

param标签的主要属性:

参数的名称

参数的值

来示例一下,使用bean标签创建JavaBean,并使用param标签来为它的属性设置初始值。

bean 

cn.javass.user.UserModel"

user"

param 

100"

bean>

#user.age"

以上的代码建立了一个叫user的JavaBean,并调用了setAge方法,赋值为100,然后把这个JavaBean实例压入到值栈中。

在后面的引用中的“#user.age”,引用的就是刚刚创建的user对象,并调用它的getAge方法。

8.2.5 

date标签

用来格式化输出一个日期数据。

date标签的主要属性:

∙format:

用于指定日期显示的格式,形如:

yyyy-MM-dd。

如果不指定的话,将会去找国际化信息中key为struts.date.format的指定值。

被格式化的值,必须设置,它本身是一个OGNL表达式。

∙nice:

是否显示当前时间与指定时间的差,如果设置为true,则不再显示指定时间,只显示当前时间与指定时间的差。

先来创建一个日期,然后把它放在request的属性里面,key为d,然后使用date标签访问,得到的结果是:

第一个date标签会正确显示日期,而第二个date标签则显示当前时间与指定时间的时间差。

%@page 

import="

java.util.Date"

java.sql.Timestamp"

5. 

Timestamp 

Timestamp.valueOf("

2010-09-22 

00:

00"

Date 

new 

Date(t.getTime());

d"

d);

8.%>

9.日期为:

date 

#request.d"

format="

yyyy-MM-dd"

11.当前时间与指定时间的差为:

nice="

true"

去运行测试一下,结果页面如下图所示:

图8.6 

示例date标签

8.2.6 

debug标签

debug标签可以帮助程序员进行调试,它在页面上生成一个链接,点击这个链接我们就可以查看ActionContext和值栈中所有能访问的值。

示例:

在页面上非常简单,只需要把debug标签放上去就可以,示例如下:

debug/>

运行测试一下,页面如下图所示:

图8.7 

示例debug标签

点击这个超链接,得到的页面,如下图所示:

图8.8 

debug的堆栈信息

8.2.7 

url与a标签

url标签的功能:

url标签用来生成一个url,但是它不显示在页面上,需要其他的标签引用它,比如a标签。

url标签可以包含param标签,通过param标签来设置url要传递的参数。

a标签的功能:

用来生成HTML的<

a>

标签,可以通过url标签来设置它的url,也可以使用param标签来设置a标签的url所需要的参数。

url标签的属性很多,主要的属性有:

∙namespace:

要访问的Action所在的包的命名空间。

要访问的Action的名字。

∙method:

访问execute方法以外的其他方法。

被放入值栈的名字,其他标签可以通过这个值来访问这个url标签所生成的url。

如果指定这个属性,则url标签不会在页面上生成字符串。

∙includeContext:

生成的URL中是否包含当前上下文。

a标签的属性也非常多,主要是与HTML对应,主要的属性有:

∙href:

超链接的URL

a标签与url及其类似,a标签拥有url标签的所有属性,它们之间的不同在于a标签用来直接生成一个链接,而url标签是用来生成一个字符串。

a标签比url标签还多出来一些属性,比如onchange,这些属性都是用来生成对应的HTML的事件的。

分多种方式来使用url和a标签,来体会它们的使用。

(1)不设置id属性,示例如下:

url 

action="

ognlAction"

namespace="

/helloworld"

uuid"

01'

url>

这样做并不会在页面上生成一个链接,而是仅仅生成一个字符串并显示在界面上,如下所示:

1./helloworld/helloworld/ognlAction.action?

uuid=01 

其中的参数uuid=01正是url标签的子元素,param标签生成的。

(2)设置id属性,示例如下:

id="

test"

这样运行,再访问页面,发现是一片空白。

因为设置了id属性,url标签把生成的url字符串放入值栈等待其他的标签引用。

(3)使用a标签来引用刚刚由url标签生成的url字符串,示例如下:

href="

%{test}"

超链接<

注意:

a标签的href属性,是通过%{test}来引用值栈中的test的,这样才能正确的生成一个链接。

(4)单独使用a标签

来把上边的url标签和a标签连用的示例,改成单独使用a标签,示例如下:

4. 

超链接 

8.2.8 

include与param标签

include标签的功能:

include标签的作用是把其它页面包含到当前的页面上。

include标签类似于jsp的include标准动作,也是一种动态引入,在运行期间动态引入被引入页面所生成的HTML,引入页面和被引入页面完全是独立的页面运行,所以不能共享变量。

include标签的主要属性:

∙value:

用来指定其他可以被引用的URL的名字,必须要设置。

(1)制作一个被引入的页面,示例如下:

page 

language="

java"

contentType="

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1