天地不仁,以万物为刍狗!

转载 struts标签之html手册

上一篇 / 下一篇  2007-06-01 00:00:00 / 个人分类:java

false;ITPUB个人空间s_,mBb8rT

t9|_ ?u1w9Y |0<html:checkbox name="checkboxForm" property="one">
i"O:Z)tgV/c0 OneITPUB个人空间b8]%nyT}6O7Q m
</html:checkbox>ITPUB个人空间V/`Y-@'J go"Z
<html:checkbox name="checkboxForm" property="two">
Q/F*@? @W)o0 TwoITPUB个人空间C X'b"m%d%Q}*r$]a
</html:checkbox>
,M/[0LuW)F_0<html:checkbox name="checkboxForm" property="three">
1z0X7@1p-n0 Three
ONcbi P.Bq0</html:checkbox>
![ h+r7hH1xu,S@)`'V2g8Z0
如果选中后被提交则相应的属性的值为trueITPUB个人空间G3a }+],q
回页首
Z#A&QcV-}0html:radio
KG"`'P5h2v x0html:radio
标签生成一个radio。主要的用法有两种,下面我们通过代码来示例。ITPUB个人空间$s7\4Uk5rr&k-W$O
下面的代码示例了html:radio标签的一般用法,如果被提交则选中的radiovalue值将被提交到radioForm中的id中。ITPUB个人空间 U&cJ)U:s I7mT

)jKF$p-Da,k0<html:radio name="radioForm" property="id" value="00001">
4a'Y k/fq HMc$k0 One
/qht?Zh3|0</html:radio>ITPUB个人空间 tlt_8};BO
<html:radio name="radioForm" property="id" value="00002">
} u7Z _1O0 TwoITPUB个人空间i/f5^P)D"s
</html:radio>ITPUB个人空间x'u2fr6n d&e(Mm
下面的代码示例了html:radio标签的典型用法,其中的personsbean:define标签中的一致,您可以参考bean:define标签。我只介绍这个<html:radio idName="person" property="id" value="id">idName指定html:radio要使用的bean(这里为person)value="id"表示personid属性将作为radio元素的value值而property="id"表示提交时选中的radio的值将被提交给radioForm中的id属性。
lb6v8L7b;g0ITPUB个人空间:Z'yp0VOi:Yu
<logic:notEmpty name="radioForm" property="persons">
/~.U?RuT\0 <logic:iterate id="person" name="radioForm" property="persons">
FqB N~s p _@z0 <html:radio idName="person" property="id" value="id">
7m0Tq0W7M/W0 <bean:write name="person" property="name"/>
U x[9V(C;Qq E1m0 </html:radio>
S\ jkL'A-S;Yx{%}1`#`{0 </logic:iterate>
f.A|6[+VZh4Bp0</logic:notEmpty>ITPUB个人空间&B1X^H%NxG+ey
回页首 ITPUB个人空间,w4`yo _w} @Bj
html:multibox
iKaq e{0html:multibox
标签生成多个checkbox。当您要使用大量的checkbox时使用这个标签非常方便,可以使您避免在ActionForm中声明大量的boolean类型的变量,带之以一个数组就行了。ITPUB个人空间a \,{z/Z
注意:为了正确的处理没有选中的checkbox您必须在reset()中设置数组的长度为0
Lf2t7UA0
下面的代码示例了html:multibox标签的一般用法,如果被提交则选中的所有checkboxvalue值将被提交到multiboxForm中的selectedItems中,这是一个String[]数组。ITPUB个人空间5g_x*vDBp
ITPUB个人空间f Hm0ZT7|_ D
<html:multibox name="multiboxForm" property="selectedItems"
LD[;x,m)[G0 value="00001"/>ITPUB个人空间d_'@3e/v9_"B1i
<html:multibox name="multiboxForm" property="selectedItems" ITPUB个人空间Ao h8g4J8o
value="00002"/>ITPUB个人空间c^ZG F0HE
下面的代码示例了html:multibox标签的典型用法:
Y$ZoHw0
w J(F(c?1l|+M0<logic:iterate id="person" name="multiboxForm" property="persons">
f)Q\$U `? @0 <html:multibox property="selectedItems">
+`_(A%}%z!n5R+OP0 <bean:write name="person" property="id"/>ITPUB个人空间6t3u'I4ki5g&x]^
</html:multibox> ITPUB个人空间luI@VR:@R
<bean:write name="person" property="name"/>
4A'B(bQ9K0</logic:iterate>ITPUB个人空间V[*uz+jwm.y*l
回页首
X-zN^x0html:link
*{ ^&z/^g'u ?c+N7W0html:link
标签生成一个锚点(<a>)元素。我从html:link标签如何构造基本url和如何构造query参数两个方面来介绍这个标签。
4X5Jn(x!xJ0
构造基本url是依据该标签的如下四个属性进行的,这四个属性一次只能出现一个。让我们看看它们: ITPUB个人空间h Y?$rkG9u/x_

!\1R;YxHn XX:I0Bt0forward
,指定一个全局ActionForward的名称。另外如果forwardmodule相关的则该forward必须指向一个action而不能是一个页面。
D:x m!{O0action
,指定一个Action的名称。 ITPUB个人空间*cL6^ Y QwmW m4OO%?
href
struts会直接使用这个值而不会对其进行任何处理。 ITPUB个人空间3z$d9G}g J4gk2E7x
page
,指定一个页面的路径,必须以/开始。 ITPUB个人空间8Qyu VY+ZL[,B
构造query参数,下面列举了可能的形式,其中baseurl只是一个占位符: ITPUB个人空间9x0YAkd\+uP(s(b
ITPUB个人空间%{o;Ee5G4?&Y#q$B A
baseurl?p=00001(
单参单值)
{_^ Y(z1g4?\0baseurl?p1=00001&p2=00002&p3=00003(
多参单值)
#rX$e.R2R0baseurl?p=00001&p=00002&p=00003(
单参多值)
jst&m HL/k0baseurl?p1=00001&p2=00002&p=00001&p=00002&p=00003(
混合)
0vxl@ fZE0
下面我们以代码示例来说明每一种html:link的用法,首先让我们花点时间看看相关action中的代码:
X.Xw7J"w}!W G#c b0ITPUB个人空间(hZ8\\ Mjdk~
<!--
下面所有代码的数据都是在这里构造的 -->
;koY3@7|x0public ActionForward execute(ActionMapping mapping,ActionForm form,ITPUB个人空间3h'HE `8a P S4kx
HttpServletRequest request,HttpServletResponse response) {
t;Y/b,uu6\p7|0
1d K6s _*| X0 DataForm dataForm = (DataForm) form;
)Zi C/XK)E;x9p0
G7v7r&RvT)D R{0 dataForm.setParam("00001");
_N2U \u%A0ITPUB个人空间&l N C|jX/s
HashMap paramSingleMap = new HashMap();
8T|'I){P#I'| G2Dyl0 paramSingleMap.put("p1","00001");ITPUB个人空间4?Sh^kq t
paramSingleMap.put("p2","00002");
7s/dZ+@[tt0 paramSingleMap.put("p3","00003");
t8I#C8@*L(J$Y;gg0 dataForm.setParamSingleMap(paramSingleMap);
X1E[S:@-Z0w;l)n d#x%m0ITPUB个人空间2M~JD"n(bG
HashMap paramMultiMap = new HashMap();
%Y+e$R v4z9N)FL0 paramMultiMap.put("p",new String[]{"00001","00002","00003"}); ITPUB个人空间MdpCu _:R_ j
dataForm.setParamMultiMap(paramMultiMap);ITPUB个人空间&`OH-rc yhO5Q:?
ITPUB个人空间GU8A7ynM-U
HashMap paramSMMap = new HashMap();ITPUB个人空间xy%n$w y/A[&T z
paramSMMap.put("p1","00001");ITPUB个人空间A2ZG ^ K O,s@
paramSMMap.put("p2","00002");ITPUB个人空间k3\o:B"njp
paramSMMap.put("p",new String[]{"00001","00002","00003"});
;SL4F0` A(W0 dataForm.setParamSMMap(paramSMMap);
,e4zHe8afL1A0ITPUB个人空间\%x2]zw
List<Person> persons = new ArrayList<Person>();
V fg-Ag`o L6^0 Person person1 = new Person();ITPUB个人空间3W$zP#{0Z{nMV'q
person1.setId("00001");ITPUB个人空间2];Q}`z ?
person1.setName("
赵辰"); ITPUB个人空间 [ P _NO0cUj
Person person2 = new Person();
db/u oyS ?0 person2.setId("00002");
i0W7ih)B1D~;Mu$d!j(K0 person2.setName("
李为芳"); ITPUB个人空间:E.Y V M f
Person person3 = new Person();
j ^0x iU0 person3.setId("00003");ITPUB个人空间3jT%V[`)]
person3.setName("
王微"); ITPUB个人空间2d Y E6\h
persons.add(person1);ITPUB个人空间[VP IJ+~
persons.add(person2);ITPUB个人空间;H$kJO P^&@^c
persons.add(person3);
0ULG(]eMo0 dataForm.setPersons(persons);
[;T~8UPT0
'B5c}$I4M7{(|0 return mapping.findForward("success");ITPUB个人空间KWb qJS2D
}
(]5z C1{2U)u z0
L gQ&t8OR*e2cg*] y0<!--
这用来设置一个位置 -->
vh-Q)De%Y0<html:link linkName="top"/>ITPUB个人空间1a6}?)uH%S,qt*t%v
<!--
这用来定位到上面的那个位置 -->
+fP0^-cm1h0<html:link page="/link.do" anchor="top">Go Top</html:link>ITPUB个人空间T+HV } X7fjR k8}
ITPUB个人空间OD O ^ }/}zP
<html:link page="/link.do" paramId="p" paramName="dataForm"
dcp.y!v,SjK2d0 paramProperty="param">
` P N] zE(\:iQ3ha(X0
单参单值
/r ?%j^!c0</html:link><br/>
'h|-k6^s)mx5f0<html:link page="/link.do" name="dataForm" property="paramSingleMap">
r(WA2w5m0
多参单值
/r} x#b-{?s0</html:link><br/>
1ydY4sO0E-Y tF0<html:link page="/link.do" name="dataForm" property="paramMultiMap">ITPUB个人空间&A} wTZG0xV |
单参多值
9K]lY2Nr;C ^]0</html:link><br/>
Mg2B p"N0<html:link page="/link.do" name="dataForm" property="paramSMMap">ITPUB个人空间b@eT1g5GC
混合
k pbB}o*?S0</html:link>ITPUB个人空间4hsgU)rR$iW
下面的代码示例了html:link标签的indexed属性和indexId属性的用法,这两个属性只有html:link标签嵌套在logic:iterate标签中时才可用。
7b K$nRMH(n qH0
&a-rY#M L^M$Hu:Zg0<logic:iterate id="person" name="dataForm" property="persons">
b x&JJ9T+Y4o0 <html:link action="/link.do" paramId="person" paramName="person"
~z+I z+P C.W#W7w s\E0 paramProperty="id" indexed="true" indexId="number">
4M7ZYl`8|9r0 personITPUB个人空间3sp fDa*j|Qy a P
</html:link>ITPUB个人空间w/NO?0e)Nq,H v
<br/>
s.p@ ~t0</logic:iterate>
ei4m y s!QAy7e0<!--
下面是上面代码的运行结果(产生的html)
I)N}}8?5Von0 <a href="/struts-demo/link.do?person=00001&number=0">
赵辰</a><br/>
1O1l ?*]/Ni3C;U0 <a href="/struts-demo/link.do?person=00002&number=1">
李为芳</a><br/>ITPUB个人空间PSOe&~s4D|/TK
<a href="/struts-demo/link.do?person=00003&number=2">
王微</a><br/> ITPUB个人空间'l N)E?/b9Pwt x[,J
其中的number是由indexId="number"确定的,而该参数的值为元素在集合中的位置。ITPUB个人空间'lAt"?JAW
-->
}+\HHn*WAs$k9m4i0
[n%lEw't6m.o/J0html:rewrite
标签和html:link标签类似只是不生成锚点(<a>),而是简单的输出字符串。ITPUB个人空间dM*e;KU.M:i
回页首
x7o"\'`)b2{1i0html:errors ITPUB个人空间P#Y7u me qh0qe
html:errors
标签和html:messages标签的功能相似,所以我们放到一起来介绍。ITPUB个人空间Fh |&q(v7@

({-q R@T9F3[7P0html:errors
标签将由name属性指定的ActionMessagesActionErrorsStringString[]直接输出到页面中。
y:pX-J4eH4p0ITPUB个人空间"a.c*`2B$Dh
html:messages
标签将用由name属性(注意message属性值对它的影响)指定的ActionMessagesActionErrorsStringString[]创建一个新的属性和scripting变量,使用id属性值作为名称。ITPUB个人空间sZ,jg ~ o~
ITPUB个人空间$uH1N]g
html:errors
标签和html:messages标签的property属性是用来为errorsmessages分类的。我们可以给这两个标签指定property属性,以便只显示某一类的错误或消息。
e'R&|qGxf0
在资源文件增加了如下的内容:
.oi xr HR0G:k0ITPUB个人空间 bg}6vY^)f B
# -- standard errors --
1E*^l4UbcPm0errors.header=<ul>
J_7K*W3J2c0errors.prefix=<li>
(j*?$|PB!Mm0errors.suffix=</li>ITPUB个人空间z^ I)N2i+^[ L
errors.footer=</ul>
5[H@\h)z]0
j;?Zjo-GA fA0error=error with none value .ITPUB个人空间:PM$t2w E2sp
error1=error1 with one value is {0} .
o"U9M ro@0error2=error2 with two values are {0} , {1} .ITPUB个人空间)aW gC K a;fH Z:k
error3=error3 with three values are {0} , {1} , {2} .
J o$Sks?$N/K0error4=error4 with four values are {0} , {1} , {2} ,{3} .ITPUB个人空间 i C)ZI k,@
下面的代码示例了actionErrors的构造:ITPUB个人空间c\A V2B.n7r
ITPUB个人空间V6D _(@*R"N
public ActionErrors validate(ActionMapping mapping, ITPUB个人空间` B$n?I+ye}$I+]^
HttpServletRequest request) {ITPUB个人空间Z6gv2j,XWU2f3j'w2Eo
ActionErrors actionErrors = new ActionErrors();ITPUB个人空间$lzHD\R O
actionErrors.add("property1",ITPUB个人空间'nw WWpIEK
new ActionMessage("error"));ITPUB个人空间3b;XHk1P#On'Q$z
actionErrors.add("property2",
B$j.Rd m l)M6`X0 new ActionMessage("error1","value0"));ITPUB个人空间 aB i I~f6z2b
actionErrors.add("property2",ITPUB个人空间mCuV|"XZ
new ActionMessage("error2","value0","value1"));
:piU"D@s]~1~0 actionErrors.add("property3",ITPUB个人空间@0Fqk*b8d-v`FT
new ActionMessage("error3","value0","value1","value2"));ITPUB个人空间X1R'm2h*I
actionErrors.add("property3",ITPUB个人空间 v4Z0@ hh"^%rG
new ActionMessage("error4","value0","value1","value2","value3"));
6k{d] Cm!e2n0ITPUB个人空间A7z7Cn!F:a0T#si
actionErrors.add("property4",ITPUB个人空间 T8h.g0]3{RD;u
new ActionMessage("error1",new Object[]{"value0"}));ITPUB个人空间/A\oM:a
actionErrors.add("property4",ITPUB个人空间 `9U+i`Sp
new ActionMessage("error2",new Object[]{"value0","value1"}));ITPUB个人空间*?oL#xoX
actionErrors.add("property4",ITPUB个人空间y#Ka2?0x%B+M |
new ActionMessage("error3",new Object[]{"value0","value1",
thC8g2Up'U wD0 "value2"}));ITPUB个人空间'Fv#wZ3dx\^Z$]
actionErrors.add("property5",
[RZ#^:F6~bq0 new ActionMessage("error4",new Object[]{"value0","value1",
&\%q X(vY8f0 "value2","value3"}));
BR3n+`2Bo%rg0
5w(~Mo ~0 actionErrors.add("notBundle",
!q^;lfPj'f {e w5y0 new ActionMessage("not a bundle key",false));
2};ji+z8W.c4Y0 return actionErrors;
4[5XV/E n'C:U&^0} ITPUB个人空间7V7k k3p,]2We,l]u
ITPUB个人空间(d X+B.}x:c7m#u
errors
标签代码示例:ITPUB个人空间r'gu O2y"pdQ/Uqb;b
ITPUB个人空间DR6K6l)H
<html:errors/>
j(qU8Z#k#U"s0<br/> ITPUB个人空间 K,C3?Fg
<html:errors property="property4"/>
H6p.L#|Z(P0
4m _*mftM1WZ0messages
标签代码示例:
o&_v\7NJH0ITPUB个人空间:{O]9j%e{j1n t@ L
<logic:messagesPresent>ITPUB个人空间8s,`D,WX1rn+p*_B
<ul>ITPUB个人空间C+[;NAy
<html:messages id="message">
^pn.i!DIX9X0 <li><bean:write name="message"/></li>ITPUB个人空间$CZ-g)KJ$C JZ
</html:messages>ITPUB个人空间*V^!vM6^
</ul>ITPUB个人空间`!Z"xA3G.Uf/h
</logic:messagesPresent>
P ea6\$I%WkUG0<br/>
/P@8NX5\ v0<logic:messagesPresent>ITPUB个人空间$W)l5CO NH$Yao
<ul>ITPUB个人空间/e4a*y4E[KYz [$r
<html:messages id="message" property="property4">
*Uwd_%~V`4q"v0 <li><bean:write name="message"/></li>
m@V2vqU*L9p0 </html:messages>ITPUB个人空间 ^(g/` O M
</ul>
A`v`;S }*Q7x0</logic:messagesPresent>ITPUB个人空间-A/}.T*ay6cb]M+{j

-\Y X {a-?H.`0
图示 2. 上面的两段代码示例运行结果相同,如下所示:
b:E/W Rs&[ z(R0ITPUB个人空间#]#B3\{lD

/B9hWpGQ?(Lb0html:javascript
aHK0qDwqo0html:javascript
标签生成用于校验的javascript脚本代码。ITPUB个人空间,Fx%Zj8o#L
下面的代码片段示例了html:javascript标签的基本用法,其中formName属性的值是在validation.xml文件的<formset>中定义的form的名称。有一点值得注意的是在确定<formset>时要使用合适的language属性值。ITPUB个人空间 Z!~0UP9?/l"ws ?

K6nr8U[^tp0<html:javascript formName="dataForm"/>ITPUB个人空间"E|KiT

K3_!a#D9mU-i/F0ITPUB个人空间sz!I+BA v}.X
html:xhtml
nw/F}e0html:xhtml
标签在页面中一出现就是告诉该页的所有其它的Struts html标签以XHTML1.0兼容的形式输出。这和将html:html标签的xhtml属性值指定为true有些类似。如果上述情况都没有出现,Struts html标签将以html4.01兼容的形式输出。


'[jY-hrd0

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-24  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 12228
  • 日志数: 273
  • 图片数: 1
  • 文件数: 2
  • 建立时间: 2007-12-01
  • 更新时间: 2008-11-19

RSS订阅

Open Toolbar