struts标签库.docx

上传人:b****4 文档编号:11711149 上传时间:2023-03-30 格式:DOCX 页数:18 大小:23.08KB
下载 相关 举报
struts标签库.docx_第1页
第1页 / 共18页
struts标签库.docx_第2页
第2页 / 共18页
struts标签库.docx_第3页
第3页 / 共18页
struts标签库.docx_第4页
第4页 / 共18页
struts标签库.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

struts标签库.docx

《struts标签库.docx》由会员分享,可在线阅读,更多相关《struts标签库.docx(18页珍藏版)》请在冰豆网上搜索。

struts标签库.docx

struts标签库

struts1标签库

1、Bean标签库

Bean标签库中标签可以访问已经存在的JavaBean以及它们的属性,还可以

定义新的Bean,把它存放在用户指定的任何范围内,供网页或者其它元素访问,

Bean标签库分为以下三类:

  1)用于访问HTTP请求信息或者JSP隐含对象的Bean标签

a)

cookie>

用于检索发送到服务器端的Cookie,包括以下属性:

id:

定义一个Cookie类型的变量,这个变量又是作为将信息

存放在page范围内的key。

name:

指定Cookie的名字

value:

指定Cookie的默认值,如果name指定的Cookie不存在,

就使用value指定的属性值。

例如:

cookieid="cookie"name="cookieName"

value="defaultValue"/>

先检索名为"cookieName"的Cookie是否存在,如果

存在,就把它的值赋给cookie变量的value值,如果

不存在,cookie变量的值就采用默认值"defaultValue"。

b)

header>

用于检索HTTP请求中的Header信息,包括以下属性:

id:

定义一个存放信息的字符串变量,这个变量又是作为

将信息存放在page范围内的key。

name:

指定要检索的Header中的字段名字

例如:

headerid="lang"name="Accept-Language"/>

等于

Stringvalue=

(HttpServletRequest)request.getHeader("Accept-Language");

Stringlang=value;

pageContext.setAttribute("lang",value);

c)

parameter>

用于检索HTTP的请求参数,包括以下属性:

id:

定义一个存放信息的字符串变量,这个变量又是作为

将信息存放在page范围内的key。

name:

指定请求的参数名

value:

指定请求参数的默认值

例如1:

parameterid="arg1"name="testarg"

value="noarg"/>

等于

Stringtemp=request.getParameter("testarg");

if(temp!

=null){

Stringarg1=temp;

pageContext.setAttribute("arg1",temp);

}else{

Stringarg1="noarg";

pageContext.setAttribute("arg1","noarg");

}

例如2:

parameterid="arg2"multiple="yes"

name="testarg"value="noarg"/>

arg2是一个存放所有request请求中参数值的字符串数组。

输出所有的参数值:

<%

for(inti=0;i

out.write(arg2[i]+"
");

}

%>

d)

page>

用于检索JSP隐含对象(如request、session、response)包括

以下属性:

id:

定义一个引用隐含对象的变量,这个变量又是作为

将信息存放在page范围中的key。

property:

指定隐含对象的名字,可选值包括application、

config、request、response和session。

例如:

pageid="this_session"property="session"/>

writename="this_session"property="creationTime"/>

表示定义了一个"this_session"变量,它引用JSP中

的session隐含对象,接着输出该变量中属性

createTime的值(其实是session中属性createTime的值)。

2)用于访问Web应用资源的Bean标签

  a)

message>

用于输出资源配置文件中的一条信息,

message>标签的bundle

属性指定资源配置文件,它和Struts配置文件中的

元素的key属性匹配。

如果没有设置bundle属性,就采用默认的资源配置文件。

Struts配置文件中配置了两个资源配置文件:

第一个资源配置文件没有指定key属性,因此是默认的资源配置文件,

它的资源文件为ApplicationResources.properties。

第二个资源配置文件指定key属性为"special",它的资源文件

为SpecialResources.properties。

内容:

hello=Hello,ereryone!

message>标签三种使用方式:

a1)

messagebundle="special"key="hello"/>

bundle-->中的key  

key-->SpecialResources.properties中的hello

注意:

如果

message>中设置了属性bundle,那么

中一定要设置属性key,否则运行

时会报错的。

a2)

message>标签中的属性name指定一个scope中的key,value为

资源配置文件中的key。

例如:

<%request.setAttribute("stringBean","hello")%>

messagebundle="special"name="stringBean"/>

hello-->SpecialResources.properties中的hello

a3)同时指定

message>标签的name和property,name指定

一个JavaBean,property指定JavaBean中的一个get方法,get方法

的返回值就是资源配置文件中的key。

例如:

<%

SomeBeanbean=newSomeBean();

bean.setName("hello");

request.setAttribute("someBean",bean);

%>

messagebundle="special"name="someBean"

property="name"/>

bundle-->中的key

name-->request中的key(someBean)

property-->bean的getName()

getName()返回值(hello)-->资源配置文件中key(hello)

  b)

resource>

用于检索Web资源的内容,包括以下属性:

id:

定义一个代表Web资源的变量

name:

指定Web资源的路径

input:

如果没有设置input属性,则id属性定义的变量为字符串

类型;如果给input设置了值(可以是任意字符串),则id

属性定义的变量为InputStream类型。

例如:

resourceid="resource"name="/testpage1.jsp"/>

resource变量代表"/testpage1.jsp"资源,由于没有设置input

属性,因此resource变量为字符串类型,它的值为testpage1.jsp

的源文件内容。

  c)

struts>

用于检索Struts框架内在的对象,如ActionFormBean、ActionForward和

ActionMapping。

包括以下属性:

id:

定义一个page范围内的变量,用来引用Struts框架内的对象。

formbean:

指定ActionFormBean对象,和Struts配置文件中的

元素匹配。

forward:

指定ActionForward对象,和Struts配置文件中的

元素的子元素匹配。

mapping:

指定ActionMapping对象,和Struts配置文件中的

元素匹配。

注意:

属性id必须和下面三个属性中的一个匹配

例如:

strutsid="forward"forward="BeanResources"/>

writename="forward"property="path"/>

以上代码的用属性id定义了一个"forward"变量,它引用

一个名为"BeanResources"的ActionForward对象,在Struts

文件中,与之匹配的元素为:

...

write>标签输出ActionForward对象的path属性值

  d)

include>

和标准的JSP标签

include>很相似,都可以用来包含其他Web资源

的内容,区别在于

include>标签把其它Web资源的内容存放在一

个变量中,而不是直接显示在页面上。

包括以下属性:

id:

定义一个代表其它Web资源的位置

forward:

指定全局转发的路径,和Struts配置文件中的

元素中的子元素匹配。

page:

指定相对于当前应用的URL,以"/"开头。

href:

指定完整的URL

例如:

includeid="p1"page="/page.jsp"/>

includeid="p2"forward="success"/>

writename="p1"filter="false"/>

writename="p2"filter="false"/>

3)用于定义或者输出JavaBean的Bean标签

  a)

define>

  用于定义一个变量,属性id指定变量存放在scope中的key,toScope属性指定这个

  变量存放的范围,如果没有设置toScope属性,则这个变量存放在page

  范围内。

给id属性定义的变量赋值有三种方式:

a1)设置value属性例如:

defineid="age"value="25"/>

a2)同时设置name和property属性。

name属性指定一个已经存在的

Bean,property指定已经存在的Bean的某个属性,id作为key或者变量。

例如:

<%request.setAttribute("sessionBean",session);%>

defineid="contextBean"name="sessionBean"

property="servletContext"/>

ServletContextName:

writename="contextBean"

property="servletContextName"/>

contextBean属于ServletContext类型

a3)同时设置name和type属性。

name属性指定已经存在的JavaBean

,type属性指定这个JavaBean的完整的类名。

id作为key或者变量。

例如:

defineid="loginForm_copy"name="loginForm"

type="com.briup.web.LoginForm"/>

writename="loginForm_copy"property="username"/>

该标签会依次在page、request、session和application范围

中根据key(loginForm)来查找LoginForm的对象,也可以通过

属性scope来指定一个查找的范围。

注意:

属性id定义的变量也是LoginForm的对象变量(对象引用)。

  b)

write>

用于在页面上输出某个Bean或者其属性的内容。

例如:

writeid="length"name="list"/>

writename="student"property="xh"/>

writeformat="#.####"name="employee"

property="salary"/>

writeformat="MM-dd-yyyyyhh:

mm:

ss"

name="now"property="time"/>

注意:

该标签自动会从page、request、session和application

范围中根据name指定的key去查找对应的对象,也可以用

scope属性来限定某个范围。

另外,属性filter:

true表示将html中的标记作为普通字符显示

false表示不会把html中的标记作为普通字符显示,默认为true。

  c)

size>

用于获得Map、Collection或者数组的长度。

包括以下属性:

id:

定义一个Integer类型的变量

name:

指定已经存在的Map、Collection或者数组变量

例如:

sizeid="length"name="list"/>

writename="length"/>

2、HTML标签库

该标签库可以和标准的HTML标记完成相同的功能,主要分为以下几类:

  1)用于生成基本的HTML的标签

a)

html>

用于在页面的开头生成HTML的元素,该标签有一个属性

lang来显示用户显示的语言。

例如:

htmllang="true"/>

如果用户的浏览器使用中文,那么该代码在运行时被解析为

b)

base>

用于在页面的部分生成元素,用于生成当前页面

的绝对URL路径。

例如:

base="http:

//localhost:

8080/jsp"/>

那么使用该base的页面已经将URL定位到应用程序jsp

的根目录下面,要从该页面再去访问其它资源,只要

使用相对路径即可。

c)

link>

用于生成HTML的元素,包括以下的属性:

forward:

指定全局的转发链接,对应于Struts配置文件中

元素

href:

指定完整的URL链接

page:

指定相对于当前应用的URL

例如:

c1)

linkforward="index">

LinktoGlobalActionForward

link>

index对应于struts-config.xml中:

全局:

  

上述标签会自动生成HTML代码:

LinktoGlobalActionForward

c2)

linkhref="http:

//localhost:

8080/app/index.jsp">

Generatean"href"link

生成的HTML代码如下:

//localhost:

8080/app/index.jsp">

Generatean"href"link

c3)

linkpage="/login.do">

Arelativelink

link>

生成的HTML代码如下:

Generatean"href"link

使用该标签的优点:

b1)应许再URL中以多种方式包含请求参数

b2)在当前浏览器关闭Cookie时,会自动重写URL,把

jsessionid作为请求参数包含在URL中,用于跟踪

用户的状态(除了href属性)。

d)

img>

用于在HTML中嵌入图片

例如:

d1)

imgpage="/girl.gif"/>

生成HTML代码如下:

d2)

imgsrc="/app/girl.gif"

paramId="orderid"paramName="3"/>

生成HTML代码如下:

orderid=3"/>

  2)用于生成HTML表单的标签

a)

form>

生成HTML元素

例如:

formaction="/login">

生成的HTML代码如下:

action="/app/login.do">

对应于struts-config.xml中部分代码:

type="com.briup.web.action.LoginAction"

name="loginForm"

scope="request"

input="/login.jsp"

validate="true">

b)

text>

生成HTML元素

例如:

textproperty="age"/>

property属性指定的字段和ActionForm中的属性匹配

生成HTML代码如下:

value="ActionForm中属性age的值"/>

c)

hidden>

生成HTML元素

例如:

hiddenproperty="age"/>

生成HTML代码如下:

d)

submit>

生成HTML元素

例如:

submit>提交

submit>

生成HTML代码如下:

e)

cancel>

在表单上生成取消按钮

例如:

cancel>Cancel

cancel>

生成HTML代码如下:

name="org.apache.struts.taglib.html.CANCEL"

value="Cancel"/>

注意:

在Action类中,应该以编程的方式来处理取消事件。

f)

reset>

生成HTML元素

例如:

reset>重置

reset>

生成HTML代码如下:

g)

checkbox>生成HTML元素

h)

multibox>在表单上生成复选框元素

i)

radio>生成HTML元素

j)

select>生成HTML