Java Struts Spring Hibernate Tutorial - github.com/ chrishulbert/ JavaTutorial
March 2, 2017 | Author: chris_hulbert | Category: N/A
Short Description
Tutorial of how to use eclipse to build a full-stack web app from scratch, using struts2, hibernate, spring, sitemesh, s...
Description
#$%$"&"'()*(+,"&"'-)./0"&"1.23)/$(3"&"456.-+3"7*(8).$6" 9*.6:./0"$";32"$--"((-EFF+-6./(3)G58=G$*F2680FH-I!JB" 7>.+":85*=3/(E">((-EFF;;;G+5).2:G58=F:85F,K,BB!LMF#$%$N'()*(+N1.23)/$(3N7*(8).$6" O>).+"1*623)("P5>).+G>*623)(Q0=$.6G58=R" S336"";.(>"=3";.(>"$/T"U*3+(.8/+V"W")3$66T">8-3"T8*"03("+8=3(>./0"8*("83)3H GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG L] ?--3/:.^E"Y+./0"_T'U6 GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG LJ "
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
!"
-*+.'/0)+1'*& " 1.`"(>.+"(*(8).$6";$+";).((3/"3"2$+.5+"8./0".+" :.3)3$+";.(>"#$%$"T8*"03("(8"5>88+3"$/:"-6*0" $";>863"2*/5>"83)G"W/"(>.+"5$+3`"Wb%3"5>8+3/"'()*(+,"$/:"1.23)/$(3"P$/:"'-)./0" $/:"'.(3=3+>"$/:"#(:+"$/:"Z80BDR`"$/:"456.-+3"$+"(>3"WA4G"" " " Wb66"+($)(";.(>"(>3"$++*=-(.8/"(>$("T8*b)3"*+./0"$"\./:8;+"CO`"$/:"(>$(b+"$28*(".(G"_T":$($2$+3"+(*8(+"(>$(":8/b("=$(5>"T8*)"+5)33/G"7>.+" .+":*3"(8"=3"($d./0"(>3"+5)33/+>8(+"8*("8.6+("=$d./0"(>.+"(*(8).$6`"30"T8*"=$T"+33"$"3"-)8D35("3^-68)3)"(>$("W">$%3/b("(86:"T8*"(8"=$d3"T3(G"#*+(".0/8)3"(>3+3".3"6$(3+("%3)+.8/"83"+.=-63+(";$T"(8":8"(>.+".+"(8":8;/68$:".(" 3"%3)+.8/"e#$%$'3(*-X*!LN)%G3^3b"
" !"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
" ,"
-*,+"$$1*2&5)$16,%& " [8;"63(+"./+($66"456.-+3G"f8"(8"(>3.)";32+.(3E">((-EFF356.-+3G8)0F:8;/68$:+F" 7>3)3"$)3"$";>863"2*/5>"83"("56.5d"8/" \32O8/(3/("j"[3;"j"1(=6"C$03G"S8)"(>3".+"(*(8).$6G"
" " [8;";3";$/("(8")*/"(>.+"$--6.5$(.8/"$(")*/+"T8*)"$--6.5$(.8/"3:"$/:".+"+T/5>)8/.+3:"$0$./`"08"2$5d"./(8"T8*)"2)8;+3)"$/:">.(")3E"
?/:"$+"T8*"5$/"+33"$28%3`".(";8)d3:"".+"$"088:";$T"(8"$558=-6.+>"(>.+`"$+" '()*(+":83+"/8(">$%3"$"2*.6("./";$T"(8":8"(>.+G"7>.+"58==8/">(=6".+"d/8;/"$+"$"_$+(3)"-$03"./" ?+-G/3(`"8)"$"(3=-6$(3"36+3;>3)3G" f8"(8">((-EFF;;;G8-3/+T=->8/TG58=F+.(3=3+>F:8;/68$:G$5(.8/"$/:":8;/68$:"(>3"6$(3+("#?h" %3)+.8/E"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
"
!B"
7>3/":)$0N$/:N:)8-"(>3":8;/68$:3:"e+.(3=3+>NpGD$)b"3"4%3/(+l\32O8/(3/(l\49NW[Sl6.2"3"-)8D35("3^-68)3)G" W3=" $:".++*3+":)$00./0"$/:":)8--./0"3"6.2"3"-)8D35("3^-68)3)E"
C63$+3")3=3=23)"(>3+3"+(3-+"(8"./56*:./0"#$)"3"356.-+3" -)8D35("3^-68)3)" "
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
"
!K"
[3^(";3"/33:"(8"./56*:3"#'7Z"./"(>3"-)8D35(`"$+".(";.66"23"*+3:"2T"8*)"+.(3=3+>"=$+(3)"(3=-6$(3G"#'7Z" 0.%3+"#'C"3"(3=-6$(3";.66">.0>6.0>("(>3"58))35("=3/*" ($2"$/:"+>8;"(>3"58))35("+*2=3/*G"A8;/68$:"D+(6N!G,GD$)""(>3"'.(3=3+>"#$)G" " g8*"5$/")3$:"3)"$28*("#'7Z">3)3".E" "
"
>((-EFF;;;G.2=G58=F:3%368-3);8)d+F6.2)$)TFDND+(6@,!!G>(=6" >((-EFF;;;G=*6$).3/G58=F2680F,@@]F@BF,BF>8;N(8N)3.+"+.(3G"O)3$(3"$/"e$++3(+b".+"(*(8).$6"P(>3"6./d"(8" 03("(>3"i.-"3"$::)3++"+33"(>3".+".+"(8":)$0"(>3"e$++3(+b""3"(3=-6$(3";.66"08G"g8*"5$/"58-T" (>.+""$("03(+")3-6$53:" ;.(>"(>3"58/(3/(+"83"84:->?"$/:"8(>3)"2.(+"8)8*0>".("(8">.0>6.0>("$/:"+>8;"(>3" $--)8-).$(3"-$)(+"8$%3"(8"58/3"3:.(8)";./:8;RE"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
!J"
?::"(>3"3"8`"+8".("5$/":8".(b+" (>./0G" ?("(>.+"-8./(`"=.0>("W"+*003+("58-T./0"$/:"-$+(./0"58:3"+*5>"$+"$28%3"./(8"T8*)"$--6.5$(.8/"3)"(>$/"D*+("(T-./0".("8)"58-T./0"3">$++63"88*6:"688d"6.d3"(>.+"P=$d3"+*)3"T8*"+$%3"(>3"3"+.(3=3+>"58/("56.5d"8/"\49NW[S"Nj"[3;"Nj"s_ZG" S8)"(>3"3"58/(3/(+"8"(8"$--6T".(b+"=$+(3)"-$03"P=$./GD+-R"(8"3%3)T")3U*3+(G"g8*"58*6:" 58/("56.5d"j"A363(3G" 78"$::"(>3"78=5$("+3)%3)`").0>("56.5d"./"(>3"3=-(T"+3)%3)+"%.3;"$/:"5>88+3"[3;"j"'3)%3)E"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
"
,B"
O>88+3"?-$5>3j78=5$("%XG@"'3)%3)"$/:"56.5d"[3^(E"
" " W/"(>3"78=5$("./+($66$(.8/":.)35(8)T`"3/(3)"(>3""2*((8/+"(8"23" 3/$263:G"7>3/"56.5d"[3^(E"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
"
,K"
O6.5d"e?::"?66b"$/:"(>3/"S./.+>E"
" " g8*"+>8*6:"/8;">$%3"(>3"(8=5$("+3)%3)"./"T8*)"+3)%3)+"%.3;G"h.0>("56.5d".("$/:"5>88+3"'($)(E"
" !"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
" ,X"
Wb="/8("+*)3";>T"T8*">$%3"(8":8"(>.+"P=$T23".(b+"$"5$5>./0".++*3R`"2*("3:.("$/:"+$%3"T8*)"./:3^G>(=6"+8" (>$("(>3"58/(3/(+"8(6T":..(")3G" g8*"+>8*6:"+33"T8*)"=3++$03"(=6"$+"233"(3=-6$(3"8;"+.(3=3+>">$/:63+"(>3"-$03"(.(63+`"08"./(8"T8*)"./:3^G>(=6"$/:"3:.("(>3"(.(63"6./3"6.d3"(>.+E" !'&'6(5J+&*$&*$'+($&-.(C$;7@(!8'&'6(5$
7>3/"688d"./(8"(>3"+.(3=3+>l=$./GD+-"-$03G"g8*"5$/"+33"(>3"(.(63"-6$53>86:3)+"2T"688d./0"3"-)8D35(G" "
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
"
,]"
;+.0+,&=& " '()*(+",".+"$"-8-*6$)"#$%$";32"((-EFF+()*(+G$-$5>3G8)0F:8;/68$:G50." W"0)$223:"(>3"e4^$=-63"?--6.5$(.8/+b"%3)+.8/"P+()*(+N,G!G]G!N$--+Gi.-RG"Wb66"3^-6$./"6$(3)";>T"W"$%8.:3:" (>3"8(>3)"%3)+.8/+E"
" g8*b66"(>3/";$/("(8"*/Ni.-"(>.+"3"e+()*(+N,G!G]G!l$--+b""Gi.-"$/:"*/i.-".(E"
" [8;"08"./(8"(>3"\49NW[Sl6.2"$("/3;6T"*/i.--3:";$)"3"3.+"+$=-63"$--6.5$(.8/`")$(>3)"(>$/" :8;/68$:./0"(>3"e+()*(+N,G!G]G!N6.2Gi.-b"%3)+.8/"$("(>3"6.2"%3)+.8/"./56*:3+"$66" +8)(+"8./0+":8;/`";>.5>".+/b(")3$66T">36-3"\32O8/(3/(l\49NW[Sl6.2"8*6:" /8;">$%3"$66"(>3"#?h+"./"T8*)"6.2".+E"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
"
M!"
[8;";3"/33:"(8"58/3";32")3U*3+(+"(>)8*0>" '()*(+,G"?::"(>3"/.(F$D763(EF'23(F$85$!"##$*('$'/$176*($1/2$;2/.$##5$ $ $$!;79\7@($-7)(EF(D(-'*F$-7)(*;79(EF8(D(-'*F$(C'(-.*EF*'23'*#.(1736'F5$ $$$$!79'&/-$-7)(EFAF$967**EF79'&/-*:(D(-'*:]G^F5$ $$$$$$!2(*36'58D&(=*8(D(-'*8]G^:L*;!82(*36'5$ $$$$$$!2(*36'$-7)(EF2(.&2(9'F$'3/`"8/"T8*)"/3;"-$5d$03"./"(>3"-)8D35("3^-68)3)`").0>("56.5d"j"[3;"j"O6$++G"4/(3)"(>3"/$=3"eZ.+(./0b" $/:"56.5d"G"7>.+"$%3"(>3"3"_uO"-$((3)/G"9$+.5$66T"(>3"e3^35*(3b"$(";.66"03(" 5$663:"3$5>"(.=3"+8=38/3"2)8;+3+"(8">((-EFF=T+3)%3)F=T$--F3%3/(+FZ.+(./0G$5(.8/`"$/:".(".+" )3+-8/+.263"3"-$03`"$/:"*-:$(./0"$/T":$($".$%3"$")3$:E" >((-EFF3/G;.d.-3:.$G8)0F;.d.F_8:36v%.3;v58/()8663)" "
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
"
MK"
[3^(";3"/33:"(8"5)3$(3"(>3"58))3+-8/:./0"eu.3;b"3"3"3%3/(+"$("(>3"+3)%3)">$+"$"+($(*+"8.+"=3$/+".(b66"/33:"(8"23")3+($)(3:"(8")3$/03+G"h.0>("56.5d".("$/:"5>88+3"h3+($)(`"$/:" ;$.("$+".(":83+".(b+"(>./0G" g8*"=$T";$/("(8">$%3"$"688d"./"(>3"O8/+863"%.3;"(8"+33".((-EFF685$6>8+(E]@]@F4%3/(+F3%3/(+FZ.+(./0G$5(.8/"$/:"5)8++" T8*)".+"+()*(+"$5(.8/G"78":8"+8`"3:.("(>3" +)5l+()*(+G^=6"3)"-$5d$03E" " !;79\7@($-7)(EF2//'#2(.&2(9'F$-7)(*;79(EF8F$(C'(-.*EF*'23'*#.(1736'F5$ $$!79'&/-$-7)(EFF5$ $$$$!2(*36'$'(=6"3"+3)%3)"$/:"2)8;+3"(8">((-EFF685$6>8+(E]@]@F4%3/(+"$/:".("+>8*6:"$*(8=$(.5$66T")3:.)35(" T8*"(8"(>3"3%3/(+"6.+(./0G"7>.+";.66"=$d3"(>./0+"3$+.3)"$/03" (>.+"6$(3)"(8"+>8;"$"+-35.$%3"'()*(+,";8)d./0G" "
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
MJ"
>'221*2& " [8;";3b66"58/$("$)3")3U*.)3:"6$(3)"8/"2T"+-)./0"$/:">.23)/$(3G"7>3+3" 6800./0""38 a$U3';3'$7'$&-1/$6(D(6b$'/$'+($7;;(-.(2$9766(.$cSc$ 6/@dL:2//'Y/@@(2E&-1/b$S$ a$V/-1&@32($'+($7;;(-.(2$9766(.$cSc$ 6/@dL:7;;(-.(2:SE/2@:7;79+(:6/@dL:V/-*/6(S;;(-.(2$ 6/@dL:7;;(-.(2:S:678;./0"=3++$03+"8.0>3)G" " !"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$ B@"
'!($)& " [3^(`";3b66"+3(*-"'ZSB#G"'ZSB#".+"(>3"e'.=-63"Z800./0"S$x$:3".5>".+"*+3:"2T"1.23)/$(3"(8" 8*(-*("(8";>.5>3%3)"68003)"6.2)$)T"T8*b)3"*+./0"P680BD"./"8*)"5$+3RG"7>.+".+"*+3:"235$*+3"(>3"1.23)/$(3" (3$=":.:"/8(";$/("(8"6.=.("T8*"(8"8/6T"*+./0"Z80BD`"$/:"'ZSB#"5$/"23"58/$(`"-)3((T"=*5>"3%3)T8/3"D*+("*+3+"Z80BDG" A8;/68$:"(>3"6$(3+("i.-"%3)+.8/"8((-EFF;;;G+6(=6"
" W":8;/68$:3:"+63/"58-T"8/6T"(>3"$(".(".+"*+3:"2T"'-)./0" (8"8*(-*("(8";>.5>3%3)"68003)"6.2)$)T"T8*b)3"*+./0"P680BD"./"8*)"5$+3RG" A8;/68$:"(>3"6$(3+("2./$)T"i.-"%3)+.8/"((-EFF58==8/+G$-$5>3G8)0F:8;/68$:+F:8;/68$:m6800./0G50."
Y/i.-"(>.+`"$/:"58-T"8/6T"(>3"e58==8/+N6800./0NsGsGsGD$)b"3":$($2$+3"*+./0"1.23)/$(3G"9*("3"+5).-("(8"5)3$(3"(>3"($263+".+"./56*:3:";.(>"(>.+"(*(8).$6"./" eO)3$(3"A$($2$+3G+U6G(^(bG"9$+.5$66T".("=$d3+"M"($263+"$/:"-*(+"+8=3"+$=-63":$($"./"(>3=E"
"
"
" W((-EFF3/G;.d.-3:.$G8)0F;.d.FA3-3/:3/5Tm./D35(.8/" 9$+.5$66T";3b)3"08./0"(8"*+3".("$+"$"e06*3b"23(;33/"'()*(+"$/:"1.23)/$(3G"W(b66">$/:63"(>3"6.3)3"+>8*6:"23"8/3"8"+3/+3`"T8*b66"+33"6$(3)";>3/";3"58/3"((-EFF+8*)533"".+"56$++".+")3+-8/+.263".+" 56$++".+"(8"23"$"e+./063(8/b`".3"(>3)3";.66"8/6T"3%3)"23"8/3"./+($/53"8$)3:"23(;33/"$66"(>)3$:+G" 13/53".(">$+"/8"./+($/53"%$).$263+`"$/:">$+"(8"*+3"+3++.8/S$5(8)TG03(O*))3/('3++.8/PR";>3/3%3)".(" ;$/(+"(8"("56.5d"8/"e+)5b"j"[3;"j"C$5d$03"j"[$=3E"+3)%.53+"j"S./.+>"
" " h.0>("56.5d"8/"(>3"/3;"e+3)%.53+b"-$5d$03"j"[3;"j"O6$++"j"[$=3E"'3)%.53+"j"S./.+>"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
KL"
4:.("(>3"/3;"'3)%.53+"56$++"+8".(b+"D*+("6.d3"(>.+E" " (310(3"1B>0"3(C"1B>0"34$(";3b%3"08("$"2*+./3++"+3)%.53+"6$T3)`";3";$/(".("(8"23"$553++.263"(8"$66"8*)"$5(.8/+G"7>3";$T"Wb=" 08./0"(8":8"(>.+".+"(8"=$d3"$"58==8/"2$+3"56$++"3"$5(.8/+G"O)3$(3"$"/3;"-$5d$03"5$663:" e$5(.8/+G2$+3bG"\.(>./"(>$("-$5d$03`"5)3$(3"$"56$++"5$663:"e9$+3?5(.8/bG"7>3"58:3"3)3E" " 310(20'>%&34#23"(*23"D0'>%&4.+"56$++">$+"$"+3((3)"%&34"B"&'3(E>3'>&:43"%.3;"$+"2368;E" " !"#$%&'"&'(B>"F3("B"&'3(E>3'>&:4)8*0>"(>3"3%3/("6.+(./0G"'./53".(b+"%$6*3".+" k3%3/(+z`".("5$66+"(>3"03(4%3/(+PR"3"$5(.8/`"$/:"688-+"(>)8*0>"(>3"363=3/(+"83"688-`"(>3"q+E-)8-3)(T"%$6*3I{/$=3{"Fj"8*(-*(+"(>3")3+*6("83"+$=3";.(>"03(W:PRG"'33E" >((-EFF+()*(+G$-$5>3G8)0F,G!G]G!F:85+F($0N)3(=6" !"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
X@"
h3+($)("(>3"+3)%3)G"W$(";8)d+`"T8*"+>8*6:"+33"(>.+")3+*6(E"
" W$(`"0)3$(V"g8*b%3"08("$66"(>3"%$).8*+"58=-8/3/(+"P'()*(+`"1.23)/$(3`"'-)./0`"3(5R"$66" ;8)d./0"(803(>3)"+*553++(";$/("(8"+$%3"T8*)"-)8D35("/8;`"$/:"*+3".("$+"$"2$+3"3"/28& " \3";$/("(8"=$d3"$";32"3"*+3)"5$/"5)3$(3"$"/3;"3%3/(G" 78"5)3$(3"(>3"$5(.8/"56$++`").0>("56.5d"8/"(>3"e$5(.8/+G3%3/(+b"-$5d$03"P+)5l$5(.8/+G3%3/(+R"j"[3;"j" O6$++G"4/(3)"e[3;b"$+"(>3"56$++"/$=3"$/:"56.5d"eS./.+>bG"7>3"58:3""(>$("/$=3" $/:")3:.)35("(>3"*+3)"(8"(>3"3%3/(+"6.+(./0G" !"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
X,"
[8;"63(+"5)3$(3"(>3"=$(5>./0"%.3;G"h.0>("56.5d"8/"4%3/(+l\32O8/(3/(l%.3;+l3%3/(+"j"[3;"j"#'C"j" S.63"/$=3E"e[3;b"j"S./.+>G"
" 7>3"%.3;"58:3".+"(8"23E" " !"#$%&'"&'(B>"F3("B"&'3(-"F43"+E(=6"3"+$=3"$5(.8/G"7>3"+E(3^("(>3"6$236"e3%3/("/$=3b`"$*(8=$(.5$66T"-)3N3"%$6*3".3"$5(.8/b+"03([$=3PR"03((3)G"o33-"./"=./:"(>$(";>3/"(>3"*+3)"+*2=.(+"(>3"3"/$=3"%$).$263`"$/:"+8".3"(3^(28^G"?0$./`"(>3+3"($0+"$)3"$66":85*=3/(3:"8/" (>3"+()*(+"+.(3E" >((-EFF+()*(+G$-$5>3G8)0F,G!G]G!F:85+F($0N)3(=6" " !"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
XM"
n/53"T8*b%3"5)3$(3:"T8*)"$5(.8/"$/:"%.3;`")3+($)("(>3"+3)%3)"$/:"()T"8*("(>3"/3;"3%3/(".+E"
"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
XB"
9/;/8/&/>/28&6"51& " [3^("*-`";3";$/("$"e:363(3"3%3/(b"$(";>3/"T8*"56.5d"8/"(>3"eNb"2*((8/"8/"(>3"3%3/(+"6.+(`".(" $668;+"T8*"(8":363(3"$"3"$5(.8/+G3%3/(+"-$5d$03G"13)3b+"(>3"58:3E" " 310(20'>%&34"B"&'3(G"7"'"4"F3("B"&'3(G"7"'"4.+" D*+("(>3"+$=3"$+".(";8*6:"-)853++"$"+*2=.((3:"3"$5(.8/"%.$"(>3"+3(W:PR" +3((3)G"\>3/"(>3"%.3;".+"-)853++3:`"(>3"q+E-)8-3)(T"%$6*3I{3%3/([$=3{"Fj"5$66+"(>3"03(4%3/([$=3PR" 8/"(>3"$5(.8/G"7>.+"3"+3)%.53+"56$++"(8"03("(>3" $--6.5$263"3%3/(")8;G"n/53"(>.+".+":8/3`"(>3"3%3/("/$=3".+"*+3:"(8")3-6$53"(>3"+E-)8-3)(T"-6$53>86:3)`" +8"(>3"*+3)"5$/"+33"(>3"3%3/("(>3T"$)3"08./0"(8":363(3G" 7>3"q+E>.::3/"/$=3I{.:{"Fj".+"*+3:"+8"(>$(";>3/"(>3"*+3)"-)3++3+"(>3":363(3"2*((8/`"(>3".:".+"-$++3:" 2$5d"$+"-$)("83"$5(.8/"5$/"(366"(>3":..5>"(>3"3^35*(3PR"=3(>8:"*+3+"(8":3(3)=./3"(>$("(>.+".+"$"-8+("2$5d" $/:"(>3T">$%3"58//28&*88/2?,2-/& " [8;"63(b+"5)3$(3"$"+5)33/"+8"(>$("*+3)+"5$/"*-:$(3";>8".+"$((3/:./0"3$5>"3%3/(`";>3/"(>3T"56.5d"8/"(>3" e?b"2*((8/"/3^("(8"3$5>"3%3/("./"(>3"3%3/(+"6.+("+5)33/G"O)3$(3"$"/3;"$5(.8/"56$++"./"(>3"$5(.8/+G3%3/(+" -$5d$03"5$663:"e?((3/:$/53b`">3)3".+"(>3"58:3E" " 310(20'>%&34"B"&'3(D''"&/2&0"4Y$d:HG$J27-*&'&/-7688N[F$ F+'';O88===:=k:/2@8Ji8+')6d86//*(:.'.F5$ !+')65$ !+(7.5$ !)('7$+'';#(j3&DEFV/-'(-'#J3"3%3/(".:"$/:"-3)+8/".:G"W3"3%3/(".:b+">$+" $"+()$/03"|!}`".(".+"*+3:"(8":.+(./0*.+>"23(;33/"(>3".:"83".:"83"|!}"=3$/+"(8"08"*-"8/3"63%36"8/"(>3"nf[Z"+($5d"$/:"0)$2"(>3".:" %$6*3"3)32T"+d.--./0"(>3".:"3"+E.3"*+3)".3)3E" >((-EFF+()*(+G$-$5>3G8)0F,G@G!BF:85+F80/6N2$+.5+G>(=6" !"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
X]"
h3+($)("(>3"+3)%3)`"2)8;+3"(8"(>3"3%3/(+"6.+(./0`"$/:"56.5d"8/"(>3"e?b"2*((8/"/3^("(8"$/T"83"ewb"$/:"eNb"2*((8/+`".(";8/b(";8)dG"\3"/33:"(8"5)3$(3"(>3"$5(.8/+"(>$(b66" 03("5$663:";>3/"(>3"*+3)"56.5d+"8/"(>8+3"2*((8/+G"O)3$(3"(>3"3"-38-63"6.+(./0"/8;G"7>.+"6.+(./0".+"08./0"(8"23"./"$"/3;"-$5d$03`"+8"(>3"YhZb+";.66"688d" 6.d3">((-EFF+8=3;>3)3F+8=3(>./0F-38-63FZ.+(./0G$5(.8/"./+(3$:"8.+`";3b66"/33:"(8"+3("*-"$"/3;"-$5d$03" ;.(>./"(>3"+()*(+"58/%&34="%=7"(E>3'>&:43"2*+./3++"+3)%.53+"(8"03("$"6.+("83"03(C38-63PR"03((3)"3"%.3;G"O)3$(3"$"/3;"3'>&:4" (>3".:"3"+3)%3)`"$/:"2)8;+3"(8"T8*)"+.(3"$/:">8-33":$($2$+3G"O)3$(3"(>3"3"+E(3^()8*0>".(b+"/$=3Iz/$=3z"-)8-3)(T"(8"(>3"03([$=3"$/:"+3([$=3" -)8-3)(.3+"./"(>3"$5(.8/`"+8"(>$(";>3/"(>3"*+3)":83+"$"-8+(2$5d"(>3"$5(.8/"5$/"+33";>$(";$+"./-*((3:G" "
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
LB"
h3+($)("(>3"+3)%3)"$/:"()T"$::./0"$"3":363(3"2*((8/+"/3^("(8"3$5>"-3)+8/G"\3" /8;"/33:"(8";.)3"(>3="*-"(8"$/"$5(.8/G"O)3$(3"(>3"3"-$03" ;>.5>"$+d+"(>3"*+3)"(8"58/.5>">$+"(>3"%$6*3"e()*3b`"+8"(>$(";>3/"(>3"$5(.8/".+"5$663:".+" %$).$263".+"+3(""(8"()*3"$/:"d/8;+"(8":8"(>3":363(.8/G"7>3"%.3;"58:3"3"-38-63"6.+(`"$/:"()T"(8":363(3"(>3"/3;" *+3)"T8*"5)3$(3:"23$%3">36-3:"=3"$/:";8*6:"23"$"088:"-6$53"(8"+($)(" 63$)/./0"=8)3E" " >((-EFF;;;G+()*(+,G/3(F(*(8).$6!G>(=" " >((-EFF+()*(+G$-$5>3G8)0F,G!G]G!F:85+F(*(8).$6+G>(=6" " >((-EFF;;;G+()*(+,G8)0F:3%368-./0N+()*(+,N$--6.5$(.8/+N;.(>N356.-+3N.:3N+()*(+N,N!N^F" " >((-EFF+($5d8%3)3)3"T8*b66"3/"T8*"03("+(*5dR" " >((-EFF;;;G%$$//.6$G58=F+()*(+N,F+()*(+N,N3^$=-63F+()*(+N,N*.N($0+N3^$=-63N!G>(=6" " >((-EFF+()*(+G$-$5>3G8)0F,G!G]G!F:85+F($0N)3(=6"P%3)T"*+3$("T8*"5$/":8";.(>"e%$6*3b"./" T8*)"D+-"+()*(+"($0+"30"8*:,(7,2(';$#"5)2BCDEFG-9C$3/"T8*b)3".(3)$(./0"(>)8*0>"-38-63`"2*(" T8*";$/("(>3"$5(.8/b+".:`"/8("(>3"-3)+8/+".:R" " >((-EFF63%36*-G6.+>=$/G58=F>.23)/$(3F03((./0N+($)(3:F./:3^G->-"P>.23)/$(3"(*(8).$6R"" "
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
L]"
D66%*/1EF&:,1*2&GA;H$& " W";.(>"=3`"T8*b:"6.d3"(8"=$d3"$66"(>.+";8)d";.(>"_T'U6" ./+(3$:`">3)3b+">8;E" " S.)+(6T`"08"(8">((-EFF:3%G=T+U6G58=F:8;/68$:+F58//35(8)FDF"$/:":8;/68$:"(>3"i.-"%3)+.8/E" "
" W":8;/68$:3:"e=T+U6N58//35(8)ND$%$NKG!G!,Gi.-b";>.5>";$+"(>3"6$(3+("$("(>3"(.=3"83"e=T+U6N58//35(8)ND$%$NsN2./GD$)b"$(".+"*+3:"(8"58//35("#$%$"(8"_T'U6G"O8-T"(>.+"$(3%3)"T8*"5$66".(G"78":8"(>.+`"08"(8"(>3"e5$($680+b"%.3;"$/:").0>("56.5d" 2368;"j"O)3$(3"/3;"+5>3=$E" "
"
" O$66".("4%3/(+E"
"
"
!"#"$%$&'()'*+$%$&,(-./$%$0-12(."'2$%$345-,*2$6)'7(-"5$
]!"
O)3$(3"$"/3;"*+3)"5$663:"e3%3/(+b`";.(>"(>3"-$++;8):"e3%3/(+bE" "
" " f8"(8"(>3"-).%.6303+"($2"$/:"0.%3"(>3"*+3)"$66"(>3"-).%.6303+"3/"56.5d"$--6T"5>$/03+"(8"5)3$(3"(>3"3%3/(+"*+3)G"g8*";8/b("/33:"(8":8"$/T"=8)3";8)d":.)35(6T";.(>" =T+U6`"8)"5)3$(3"(>3"($263"+()*5(*)3`"235$*+3">.23)/$(3";.66":8"(>$(".23)/$(3G:.$635(G_T'cZA.$635(bG" " W("+>8*6:"688d"6.d3"(>.+E" "
" '$%3"3%3)T(>./0"$/:")3+($)("(>3"+3)%3)`"$/:".("+>8*6:";8)dG" " S8)"=8)3":3($.6+`"30".
View more...
Comments