Struts标签库文档格式.docx
《Struts标签库文档格式.docx》由会员分享,可在线阅读,更多相关《Struts标签库文档格式.docx(43页珍藏版)》请在冰豆网上搜索。
%@tagliburi=”/struts-logic”prefix=”logic”%>
Html标签库
它包含了创建Html页面的常用标签,常用的StrutsHtml标签如下:
标签名
描述
Html
Html元素,为页面的起始标记
errors
用于显示错误消息
text
单行文本输入区
base
代表了HTML<
base>
元素
hiddern
隐藏文本框
textarea
多行文本输入区
submit
提交按钮
reset
复位按钮
button
普通按钮
radion
单选按钮
checkBox
复选按钮
img
显示图像,同html的img标记
select
与html的select相同
option
与html的option相同
message
用于显示一些消息
link
等价于<
a>
标记,其中属性page为目标同一应用程序的某个页面
Html标记的用法基本同普通的Html标记,注意:
标记中的属性property等价于Html标签中的name。
(一)。
页面初始化标签
1.<
html:
html>
标签
该标签对应于HTML文件中的<
<
htmllang=”true|false”>
lang=”true”表示使用客户端浏览器所使用的语言
2.<
标记
对应于HTML中的<
元素,用于设定浏览器中文件的绝对路径,然后,在文件中只需写文件的相对位置,这样在浏览器中浏览的时候这些位置会自动附在绝对路径后面,成为完整的路径。
baseserver=””target=””>
server用于改变当前请求链接中服务器的名称,
target为该页面打开时所在的窗口,取值为_blank(一个新窗口)或一个框架名称
例:
若当前应用为Logon,其根目录下的index.jsp文件包含以下代码:
htmllang=”true”>
head>
base/>
/head>
body>
ahref=”default.jsp”>
链接到搜狐<
/a>
/body>
/html:
则<
标签被解析成如下HTML元素
basehref=http:
//localhost:
8080/Logon/index.jsp>
如果加上server和target属性的<
baseserver=”192.168.1.17”target=”_blank”/>
//192.168.1.17:
8080/Logon/index.jsptarget=”_blank”>
语法:
:
当编译之后,会生成如下类似的一段代码(网页实际的url):
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”>
此处为标题内容<
B.指定连接到本页锚点
linkhref=””anchor=”top”>
回到顶部<
等价于<
ahref=”#top”>
2.创建页面链接
用于从一个页面链接到另一个页面,语法:
linkaction|href|page|forward=>
链接描述文本<
分为以下四种情况:
2.1.action属性指定匹配struts配置文件中<
action>
元素的path属性值的UrI地址
例如:
链接到页面“login.jsp”的标记为:
linkaction="
/toLogon.do"
>
去登录<
,要求
struts-config.xml中配置为:
actionforward="
/login.jsp"
path="
/toLogon"
/>
或:
action
parameter="
path="
toLogon"
type="
org.apache.struts.actions.ForwardAction"
2.2.forwar属性表示转发到struts配置的<
global-forwar>
元素的name属性值的UrI地址2.3.href表示完整url,可以用于本应用程序之外的跳转。
当href属性值以”/”开头
时,链接地址为:
协议+主机+端口+href属性值;
当href属性值是一个完整地
URL时,链接地址href属性值.
2.4.page表示本应用中的相对位置,用于本应用程序内部的跳转。
Page属性值应当以
“/“开头
例1:
通过forward属性创建全局转发链接
在struts配置文件中配置
global-forwards>
<
forwardname=”globalError”path=”/Error.jsp”/>
/global-forwards>
在Jsp叶面中创建一个<
linkforward=”globalError”>
显示错误信息<
例:
通过href属性创建链接
假设当前应用为Logon,其根目录存在link.jsp和welcom.jsp两个文件,其中link.jsp
文件包含以下代码:
linkhref=”welcom.jsp”>
Welcome<
则上述代码
生成的连接地址为“http:
8080/Loogon/welcome.jsp”.
如果将href属性的值改为href=”/welcom.jsp”,则生成的连接地址
为“http:
8080/welcome.jsp”.
3.使用<
标签传递参数
可以通过下列两种方式在链接时传递参数
3.1.将参数直接写入链接地址
linkpage=”/welcom.jsp?
userName=wd&
pwd=12345”>
3.2.通过标签中的属性传递参数
使用<
标签中的下列属性来传递参数
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”>
显示性别
上述代码生成如下HTML元素
ahref=”Logon/welcome.jsp?
sex=male”>
显示性别<
例2:
通过JavaBean传递参数值
假设userInfo为一个具有两个属性userName,pwd的javaBean,
linkpage=”/welcome.jsp”paramid=”sex”
paramname=”userInfo”property=”userName”>
显示用户名
3.3.通过请求链接传递多个参数
linkname=”hanshMap对象”scope=””>
要传递多个参数,需要使用<
的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”>
测试页面<
(三)。
表单及其基本表单元素标签
formaction=””method=””focus=””>
其它表单元素<
form>
用于创建一个表单,等价于HTML<
但是要求该标签必须要有action属性,否则会抛出异常。
表单被提交后,ActionServlet会在struts-config.xml文件中找到相应的
元素。
该元素的path属性与<
标签action属性匹配,并且<
标签会与该<
元素中name属性所指定的ActionFormBean关联,以便自动填充表单中的元素。
Jsp文件
formaction=”logon”method=”post”focus=”password”>
textproperty=”name”/>
passwordproperty=”password”/>
则在struts-config.xml文件中需进行如下配置
action
name=”logonForm”
path=”/logon”
type=”logon.action.LogonAction”>
forwardname=”success”path=”/default.jsp”/>
/action>
text>
该标签与HTML的<
inputtype=”text”>
等价,并且作为<
的子标签。
语法:
textname=””property=””value=”constValue”>
其中
name表示一个Bean的名字,若缺省,则使用当前与<
标签关联的
ActionFormBean进行填充。
property指定bean的属性,必需的。
value一个用于填充的常量值
3.<
password>
密码输入标签
passwordname=””property=””>
4.<
textarea>
多行文本输入标签
textname=””property=””rows=”行数”cols=”列数”>
内容
5.<
hidden>
隐藏字段标签
hiddenname=””property=””>
同HTML的<
inputtype=”hidden”/>
6.<
submit>
与HTML的,inputtype=”submit”>
等价
1.<
submitvalue=”displayName”/>
2.<
submit>
“displayName”<
说明:
在一个表单中可以用多个提交按钮进行提交,但要求他们的property属性相同,
value属性值不同。
7.<
reset>
与HTML的,inputtype=”reset”>
resetvalue=”displayName”/>
8.<
cancel>
该按钮仍然产生提交请求,并且将执行Action中execute方法中的响应”取消”代码.
cancelvalue=”取消”>
该标签将生成如下的HTML元素
inputtype=”submit”name=”org.apache.struts.taglib.html.CANCEL”value=”取消”>
(四)。
下拉列表标签
1.基本形式:
selectproperty=size=multiple=>
optionvalue=>
optiom>
select>
这种形式与HTML标签<
等价。
其中,property表示该复选框列表与本
form的ActionForm中对应的属性名。
例1:
多选列表
selectproperty=”likes”multiple=”yes”size=”3”>
optionvalue=”IE”>
上网<
optionvalue=“SW”>
游泳<
optionvalue=“SP”>
购物<
optionvalue=“BG”>
桥牌<
对应的ActionFormBean的主要代码:
privateString[]likes;
publicvoidsetLikes(String[]likes){
this.likes=likes;
}
publicString[]getLikes(){
returnlikes;
2.通过资源提供显示值:
optionvalue=budle=key=>
……
这种形式本质仍然属于第一种,只是显示名称取自资源。
budle表示struts-config.xml文件中<
message-resources>
元素中资源的key
值。
key表示资源文件中项的键名称,通过这两个属性提供显示值。
例:
struts-config.xml中的资源配置:
message-resourcesparameter=”yq.UserSex”key=”sex””>
selectproperty=”userSex”>
optionvalue=”man”budle=”sex”key=”user.sex.man/>
optionvalue=”woman”budle=”sex”key=”user.sex.woman/>
3.通过集合动态提供标签的内容:
optionscollection=property=labelProperty=>
/select>
其中:
collection表示一个集合,用于为列表提供内容,集合中每一个
成员都是一个JavaBean,该Bean有两个成员:
显示值成员,数据值成员。
property为集合成员的(显示)属性名称
labelProperty为集合成员的(数据)属性名称
该标签嵌套在<
标签中生成一组下拉列表项。
有以下几种方式从
指定的对象中生成列表项。
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方法
jsp:
userBeanid=”dir”class=”yq.DirectionForm”scope=”session”/>
session.setAttribute(“allDirection”,dir.getDirectionList());
selectproperty=”orientation”>
<
optionscollection=”allDirection”
property=”value”labelProperty=”name”/>
第二种方式:
使用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.