Struts标签库.docx

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

Struts标签库.docx

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

Struts标签库.docx

Struts标签库

Struts标签库

一.概述

Struts不仅提供了一组非常丰富的框架组件,同样它也提供了一组标签库用于和组件进行交互。

Struts之所以受到越来越多的关注,很大程度上要归功于它强大的标记功能。

熟练使用和掌握struts各种标记不但可以简化页面代码,同时可以简化编程。

1.struts标签库类型:

分为以下几类:

HTML标签库

Bean标签库

Logic标签库

Templete标签库

Tiles标签库

Nested标签库

2.Struts标签库的使用

第一步:

在web.xml中用标记声明

第二步:

在页面文件(.jsp)中用<%@taglib>引用

例如:

要在页面(login.jsp)中使用struts标签库,可以如下操作:

第一步:

在web.xml中声明标签库,如:

/struts-bean

/WEB-INF/tld/struts-bean.tld

/struts-html

/WEB-INF/tld/struts-html.tld

第二步:

在login.jsp文件开头引用标签库

<%@tagliburi=”/struts-bean”prefix=”bean”%>

<%@tagliburi=”/struts-html”prefix=”html”%>

<%@tagliburi=”/struts-logic”prefix=”logic”%>

Html标签库

它包含了创建Html页面的常用标签,常用的StrutsHtml标签如下:

标签名

描述

Html

Html元素,为页面的起始标记

errors

用于显示错误消息

text

单行文本输入区

base

代表了HTML元素

hiddern

隐藏文本框

textarea

多行文本输入区

submit

提交按钮

reset

复位按钮

button

普通按钮

radion

单选按钮

checkBox

复选按钮

img

显示图像,同html的img标记

select

与html的select相同

option

与html的option相同

message

用于显示一些消息

link

等价于标记,其中属性page为目标同一应用程序的某个页面

Html标记的用法基本同普通的Html标记,注意:

标记中的属性property等价于Html标签中的name。

(一)。

页面初始化标签

1.

html>标签

该标签对应于HTML文件中的标签

htmllang=”true|false”>

lang=”true”表示使用客户端浏览器所使用的语言

2.

base>标记

对应于HTML中的元素,用于设定浏览器中文件的绝对路径,然后,在文件中只需写文件的相对位置,这样在浏览器中浏览的时候这些位置会自动附在绝对路径后面,成为完整的路径。

baseserver=””target=””>

server用于改变当前请求链接中服务器的名称,

target为该页面打开时所在的窗口,取值为_blank(一个新窗口)或一个框架名称

例:

若当前应用为Logon,其根目录下的index.jsp文件包含以下代码:

htmllang=”true”>

base/>

链接到搜狐

html>

base>标签被解析成如下HTML元素

//localhost:

8080/Logon/index.jsp>

如果加上server和target属性的

base/>标签

baseserver=”192.168.1.17”target=”_blank”/>

base>标签被解析成如下HTML元素

//192.168.1.17:

8080/Logon/index.jsptarget=”_blank”>

语法:

base>

当编译之后,会生成如下类似的一段代码(网页实际的url):

//localhost:

8080/taglib/html-base.jsp>

此时页面中的超链接的URL为http:

//192.168.1.17:

8080/Logon/default.jsp,点击

“链接到搜狐”链接后会在新的窗口中显示相应信息。

(二)。

创建页面链接的

link>标签

1.链接到页面中的指定位置

linklinkName=””href=””anchor>

linkName表示一个标记名称,即锚点。

其后可以使用anchor属性指定链接到这个锚点

href链接的目标页面

anchor用于指定用linkName属性标记的锚点。

适用于页面内容较长,为了快速回到某处的情况。

例如:

A.设置锚点

linklinkName=”top”>此处为标题内容

link>

B.指定连接到本页锚点

linkhref=””anchor=”top”>回到顶部

link>

等价于回到顶部

2.创建页面链接

用于从一个页面链接到另一个页面,语法:

linkaction|href|page|forward=>链接描述文本

link>

分为以下四种情况:

2.1.action属性指定匹配struts配置文件中元素的path属性值的UrI地址

例如:

链接到页面“login.jsp”的标记为:

linkaction="/toLogon.do">去登录

link>,要求

struts-config.xml中配置为:

或:

parameter="/login.jsp"

path="toLogon"

type="org.apache.struts.actions.ForwardAction"/>

2.2.forwar属性表示转发到struts配置的元素的name属性值的UrI地址2.3.href表示完整url,可以用于本应用程序之外的跳转。

当href属性值以”/”开头

时,链接地址为:

协议+主机+端口+href属性值;当href属性值是一个完整地

URL时,链接地址href属性值.

2.4.page表示本应用中的相对位置,用于本应用程序内部的跳转。

Page属性值应当以

“/“开头

例1:

通过forward属性创建全局转发链接

第一步:

在struts配置文件中配置

第二步:

在Jsp叶面中创建一个

link>标签

linkforward=”globalError”>显示错误信息

link>

例:

通过href属性创建链接

假设当前应用为Logon,其根目录存在link.jsp和welcom.jsp两个文件,其中link.jsp

文件包含以下代码:

linkhref=”welcom.jsp”>Welcome

link>,则上述代码

生成的连接地址为“http:

//localhost:

8080/Loogon/welcome.jsp”.

如果将href属性的值改为href=”/welcom.jsp”,则生成的连接地址

为“http:

//localhost:

8080/welcome.jsp”.

3.使用

link>标签传递参数

可以通过下列两种方式在链接时传递参数

3.1.将参数直接写入链接地址

linkpage=”/welcom.jsp?

userName=wd&pwd=12345”>Welcome

link>

3.2.通过标签中的属性传递参数

使用

link>标签中的下列属性来传递参数

paramid表示一个要传递的参数名称(key)

paramName为参数提供值的对象

paramPropertyparamName对应的属性

paramScope范围

当paramName为一个非javaBean时,直接提供参数值,不需要paramProperty属性;当paramName为一个javaBean时,需要paramProperty属性共同提供参数值

例1:

某jsp文件包含以下关键代码

<%

StringuserSex=”male”;

Session.setAttribute(“yourSex”,userSex);

%>

将变量作为参数通过链接进行传递

linkpage=”/welcome.jsp”paramid=”sex”paramname=”yourSex”>

显示性别

link>

上述代码生成如下HTML元素

sex=male”>显示性别

例2:

通过JavaBean传递参数值

假设userInfo为一个具有两个属性userName,pwd的javaBean,

linkpage=”/welcome.jsp”paramid=”sex”

paramname=”userInfo”property=”userName”>

显示用户名

link>

3.3.通过请求链接传递多个参数

linkname=”hanshMap对象”scope=””>

要传递多个参数,需要使用

link>的name属性指定一个包含多个请求

参数的HashMap对象.例如

<%

HashMappara-map=newHashMap();

para-map.put(“testString”,”testABC”)

para-map.put(“testInt”,newInteger(2000))

request.setAttribute(“map1”,para-map);

%>

linkpage=”/test.do”name=”map1”>测试页面

link>

(三)。

表单及其基本表单元素标签

1.

formaction=””method=””focus=””>其它表单元素

form>

用于创建一个表单,等价于HTML,但是要求该标签必须要有action属性,否则会抛出异常。

表单被提交后,ActionServlet会在struts-config.xml文件中找到相应的

元素。

该元素的path属性与

form>标签action属性匹配,并且

form>标签会与该元素中name属性所指定的ActionFormBean关联,以便自动填充表单中的元素。

例如:

Jsp文件

formaction=”logon”method=”post”focus=”password”>

textproperty=”name”/>

passwordproperty=”password”/>

form>

则在struts-config.xml文件中需进行如下配置

name=”logonForm”

path=”/logon”

type=”logon.action.LogonAction”>

2.

text>

该标签与HTML的等价,并且作为

form>的子标签。

语法:

textname=””property=””value=”constValue”>,其中

name表示一个Bean的名字,若缺省,则使用当前与

form>标签关联的

ActionFormBean进行填充。

property指定bean的属性,必需的。

value一个用于填充的常量值

3.

password>密码输入标签

passwordname=””property=””>

4.

textarea>多行文本输入标签

textname=””property=””rows=”行数”cols=”列数”>

内容

textarea>

5.

hidden>隐藏字段标签

hiddenname=””property=””>

同HTML的

6.

submit>

与HTML的,inputtype=”submit”>等价

语法:

1.

submitvalue=”displayName”/>

2.

submit>“displayName”

submit>

说明:

在一个表单中可以用多个提交按钮进行提交,但要求他们的property属性相同,

value属性值不同。

7.

reset>

与HTML的,inputtype=”reset”>等价

语法:

1.

resetvalue=”displayName”/>

8.

cancel>

该按钮仍然产生提交请求,并且将执行Action中execute方法中的响应”取消”代码.

语法:

cancelvalue=”取消”>

该标签将生成如下的HTML元素

(四)。

下拉列表标签

1.基本形式:

selectproperty=size=multiple=>

optionvalue=>

optiom>

optionvalue=>

optiom>

optionvalue=>

optiom>

select>

这种形式与HTML标签

其中:

collection表示一个集合,用于为列表提供内容,集合中每一个

成员都是一个JavaBean,该Bean有两个成员:

显示值成员,数据值成员。

property为集合成员的(显示)属性名称

labelProperty为集合成员的(数据)属性名称

该标签嵌套在

select>标签中生成一组下拉列表项。

有以下几种方式从

指定的对象中生成列表项。

<1>.使用collection属性指定某范围存在的集合对象产生列表项。

<2>.使用name属性指定某范围存在的对象产生列表项。

<3>.使用name属性指定某范围存在的对象和它的property属性产生列表项。

3.1.使用collection属性产生下拉列表项的两种方式

语法:

optionscollection=””property=””labelProperty=””/>

第一种方式:

编写collection属性指定对象中的Bean.

PublicclassDirectionForm{

PrivateStringorientation;

PublicVectorgetDirectionList(){//返回一个集合

VectorvDirection=newVector();

vDirection.add(newDirection(“east”,”东方”));

vDirection.add(newDirection(“south”,”南方”));

vDirection.add(newDirection(“west”,”西方”));

vDirection.add(newDirection(“north”,”北方”));

returnvDirection;

}

}

//定义方位类

publicclassDirection{

privateStringname;//方位显示值

privateStringvalue;//方位数据值

publicDirection(Stringname,Stringvalue){

this.name=name;

this.value=value;

}

//getset方法

}

userBeanid=”dir”class=”yq.DirectionForm”scope=”session”/>

<%

session.setAttribute(“allDirection”,dir.getDirectionList());

%>

selectproperty=”orientation”>

optionscollection=”allDirection”

property=”value”labelProperty=”name”/>

select>

第二种方式:

使用LabelValueBean类作为collection属性指定对象中的Bean.

LabelValueBean类在包org.opache.struts.util中,该类的两个属性label,value

构造函数为LabelValueBean(StringdispValue,StringdataValue)

分别表示下拉列表的显示值和数据值。

例如:

VectorgetMonths(){

VectorvMonths=newVector();

vMonths.add(newLabelValueBean(“01月”,”1”));

vMonths.add(newLabelValueBean(“02月”,”2”));

vMonths.add(newLabelValueBean(“03月”,”3”));

……

returnvMonths;

}

userBeanid=”idMonth”class=”yq.UserInfoForm”scope=”session”/>

<%

session.setAttribute(“allMonth”,idMonth.

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

当前位置:首页 > 自然科学

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

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