版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、h登錄+SqlServer2005的漩務(wù)1)拷貝下面所說(shuō)的.java文件,9個(gè)java文件和相應(yīng)的包名,這些都是大果任封裝好的文 件,可以直接用。2)dao 包里面有:Dao.java 還有一個(gè) impi 包:IDao.javaIBaseMa nager.javaIMan ager.javaman ager包里面 有:IUserLogi nMan ager.java還有一個(gè) impI 包: BaseManager.javastruts 包里面有:App licati on Resources .prop erties還有一個(gè) action 包: BaseActi on .java IAct i
2、on .javautils 包里面有:MyActio nP roxy.java ObjectUtils.java再把 log4j .prop erties貼到src包下面。2)把 app licati onCon text.xml sprin g-form.tld sprin g.tld struts-bea n.tid struts-c on fig.xml struts-html.tldstruts-logic.tldstruts-nested.tidstruts-tiles.tld validator-rules.xml web.xml這些以前寫(xiě)過(guò)的都可以貼過(guò)來(lái), 代碼就行了。你可以直接
3、把這個(gè)項(xiàng)目里的都貼過(guò)去,以后就直接在這里該以上兩個(gè)步驟樣就是為了完成手寫(xiě)SSH代碼3)新建一個(gè)pojo包:C_LJ丄 U白誼問(wèn)。I h 創(chuàng)建一個(gè)實(shí)體:T>-3 Lm_i 7由-扔 UserLogin. j ava先讓puDlic class UaeirLogin這個(gè)類實(shí)現(xiàn)序列接口如:然后寫(xiě)相應(yīng)的字段:衛(wèi)rivate Integer id; private String use匸口axtie; private 3匚匚in事 passw口匚Qf利用get和set方法生成每個(gè)字段的get()和set()。例如:puLiic Integer get Id(J return id;puliiic
4、void 3etld Integer id) this,id = id;4)為了更夠生成 血打険皿 皈.詢 所以為每一個(gè)字段寫(xiě)出相應(yīng)的元數(shù)據(jù):1. 生成相應(yīng)的表:package pojo;* hiberiiate.class 匸able二HUserrLoginM*Class UserLogin iinleinents java. io . Serial i zable 說(shuō)明:利用hibernate 生成UserLogin表。2. 字段id的映射,元數(shù)據(jù)要寫(xiě)在get ()方法前面:/ fir十 gliiHernate - id甘wner a tor c 丄民33 三"iden Di 匕
5、瀘piihlLC Integer getid ()return id;pubXlc void sevid (匚 id.) this,id = id;3.字段username的映射,元數(shù)據(jù)要寫(xiě)在 get ()方法前面:* lii_bei;Ti.ate . piro perty c lTunTi= *us&rnaitielengttL = 2C* ncit-nLill=*ial3e*Vpublic String getUoernartie () xet<irjL use工name:public void setUseiznawe (Scring usematiie) . u-sern
6、siiie = 口sername ;4.字段password的映射,元數(shù)據(jù)要寫(xiě)在get ()方法前面:* Sliibernat e property co 1111x111= "password" 1 已ri0th="2O" not-nul 丄="false"public String get.Password" return passvord;fulillo void setPasswotd (Scring password) this.password = passuorl;這樣這個(gè)UserLogin.java就完成了。
7、5)右鍵項(xiàng)目名稱找到“屬性”選項(xiàng):運(yùn)廳方式®調(diào)宦方式(W槪要分析方式迥 小廻墮) 比較對(duì)象®從本地歷史記錄當(dāng)原 HyEcllpSFDE工耳©)U-i+Enter找到:XDoclet點(diǎn)擊這個(gè)出來(lái)相應(yīng)的界面:XDiidKi選中:并單擊確定按鈕。rCiir*ti tT, Jnililefinw tAE XDozlet cdr.fi ErratL onz aTtilable for eeiierati ctl恢復(fù)址肯隹四I應(yīng)用 ICcitSL-1 eai. ET-tr Color 4J- JSVl歸崖炎 rd-Jsvi代訶暉式 WR模檢 :蒂式代程序 爼sS導(dǎo)A.- J旳
8、i槌腔路輕- JaviC匚 opLitns- Ja苜ii*c fiS 曰 tyEzLipL±7t 9. C£h.L T.'k Ti百九 g ViZ iiativiLUHL頂刖用單擊Kid Staniari.按鈕,各 ClkDOEft uk entryStaitdd AOf " III I0 Lm !1 0FISlaitJarJ feanJitfoStandard IJBS+aitlard KiternatftStandard JTOS-tandu-d JWK Standsrd TortLet. Siuxdtrd lV«b取消確走出現(xiàn): kODEO
9、 iLU Utry2S1ADP £»«nln fo 礙JDOJ1K出現(xiàn):& S=klElLW 的雇性二inj 因I磁垃話立本:fsfe:-Deal Ltcr Crulnj CiniL1+1 Java蝙譯骷$ 世刪逐:;蝕磁i :榕戒耐序'組職導(dǎo)入:-"嚴(yán)!昭耳蒂和:"JavaJCC ortc on?:-JavaJ亡(i芝Qu:JS? Ffdsn 勺tt=:TmIc To;:i t V-a C4tL Dhi i XEbckt:UHLl-WT;枸逹莫!項(xiàng)目弓用XUoclot點(diǎn)擊“確定”按鈕。6)右鍵項(xiàng)目名稱:Ccnficurttlo
10、A UuLld Ilcfiiit tLe TLocIti 匸口時(shí)j £ut j亂*rbilali二e for gtner tliiin.0 E3BEsE9eSS3& 0密 kitzn九讓dciild0 t* filsLeX Pl Z hibstn応*Md.AdJ 3 r anldi.I pg專消package poja;&;號(hào) sre=曰涵t? i 0r-Ji曰加!:釦:B a n;:it' : . _! : a ,;0-I B-> n和=:0 J:B-ffinH H -曰惟I-;0 J在新窗口中打開(kāi)如 打開(kāi)菟型層次結(jié)構(gòu)la)F4矣復(fù)制VCUl+C復(fù)需卿
11、定盞拈貼(£)Ctrl+VX刪除D«ltU構(gòu)建躋輕卜源代電AlOjhLfUC卜重構(gòu)(X)沁導(dǎo)入(X).諾1號(hào)出(&) -胡刷新E)FS關(guān)和S目富運(yùn)行方式切式叫卜概要分折方式世)小爼卜比較対轅也)從本地歷史記錄復(fù)原a).E-MyEclipstPBE工具卜JI性®Alt+Entsr新逹世) 進(jìn)入Qe . uIciii Jciij Ic-"Uhc L Liuy iii"s UseuLoqxn irntplements java. !.SeriTnt.rrr i 冃 skdd and R目“ov屯 Project Eeploym«il
12、s.,.AddAddZAddAddMAAddWtb Service C軸bilitiecT4p(atry E崔p包biliti 電s_ .Stmts Capabilities. . _Sprang C注p注bilities. . J?A Capabilitifi.JSF C&p&bilitUiJSTL Libraries- . _Hibernate Capabilities.Eun XDocle:日涵F;FFl I.-:0 !:B ffii . .:也.! u- s-皿S JEE 1. 9 s arsTiLs Open lit EgQ 會(huì)率0 XDoclet石Run V辺】竭:
13、'瓷譽(yù)!二曲Fl,查詢更夢(mèng)詞典:Ely搜索因禱網(wǎng)Hl4110詳 YU1 UHil VLL.-.Rtmflvt All Validation HurkarsTemplate to use;Handard J 5P using struts 1,2/1,3 Hith a form執(zhí)行Run XDocle后只要出現(xiàn):、曲 n. iffwuh Lfti vyirai i p Tgati站申* gUFMi盯刖Fegg05 尸吋Buildf Lie 1 Cz DocTitKiir end Sett itxjsA i±iniiiz_ntr&=ozA ? /'irfyiroi
14、:環(huán) JSF ?、ttk xdoclct -hui Jd - trip - Ktil MbSSC !4T I Rjnning <kibeciiate/>titer Hit edo 二 J. mt IletHaiz., stactpajo. UaetLcgmhUbcrrLaL&doitlSiting rawf工Ln呀 itie 土or foJo.UatrLogin.LhiberiiRt:_xtioelst_cftntr Ht LQik_:fiUILP SUCCHSflJULTnca I tiTiiF: 5 FPPnTUJT就說(shuō)明你的UserLogin 類的-訪血臺(tái)rLd鞋TL
15、h亦炯創(chuàng)建成功了!7)新建一個(gè)UserLogin.jsp 的頁(yè)面(帶Form的那種頁(yè)面):File 凸th:/sshdenglu/WebftootFile Nome:rJsp.jsp生成相應(yīng)的頁(yè)面后把屬性名稱,改成:<rd>Login: </ccb-: text p匸opei:ty=Eu3ernarBeF /x/tz.d><tr><:tcl>Pas3wcizd: </td>itdxhtitil: password pi;opei:ty=EpQ3曰邛uud" <fzr>給相應(yīng)的action后面添加一個(gè)名字,指明提交
16、表單后走哪個(gè).do如:<htttil:foi:ni action= VUserLogin. do">8)找到'O 5trut5-cor/lg,xml 雙擊: 在代碼Yaetiox防琴pingo 標(biāo)簽中手寫(xiě)action(就是上面表單提交后的那個(gè) /*.do)vac tion-inapping><act ion name-"UserLogiaFocm" p準(zhǔn)th"/UsecLcgin" pai:anietc:"cbecfc" valid©tG=ffral3e*f scopestype=*
17、f3trut3. act Ion. UserLoginAct ion">Cf oruard na2ne="£uce3£r pat.h=f*/3uce3 3 . j3p"></f orirar d><forwardpath= '"/taileta.do"></fotward.></actin>在找到 妊皿吐M豳沙 標(biāo)簽,寫(xiě)上form-bean的代碼:蘭f口cm-bean naftie=TsecLocinFocai" type="pojo,U
18、se匚Loin" f>說(shuō)明:根據(jù)jsp頁(yè)面提交的/UserLogin.do找到struts-config.xml 里面的path屬性,根據(jù)name屬性找到form-bean標(biāo)簽里的name屬性,以及它對(duì)應(yīng)的type屬性,type屬性寫(xiě)的就是pojo類中UserLogin的全名(包括包名和類名),Parameter屬性是說(shuō)明表單提交后要執(zhí)行check方法,Validate= "false ”屬性說(shuō)明不使用表單驗(yàn)證框架,Scope=" request ” 說(shuō)明作用域是 request ,的全名(包括包名和類名),失敗就跳轉(zhuǎn)failed.jspType=”屬性寫(xiě)得
19、就是你一會(huì)要?jiǎng)?chuàng)建的UserLoginActionForword標(biāo)簽就是說(shuō)明要是 check成功后跳轉(zhuǎn)success.jspj頁(yè)面。jsp頁(yè)面。9)根據(jù)上面的xml文件我們創(chuàng)建相應(yīng)的.java類和相應(yīng)的在action包里面創(chuàng)建一個(gè)在Web-Root下創(chuàng)建一個(gè)File Pwth;ysshdenglu/AebRootBrovyse,-File 曲nieiTemplate bo use:MyJspJsp普通的(D? sweAj甲 頁(yè)面。在manager包里的impi包里面創(chuàng)建一個(gè) UserLoginManager.java文件:.田 managerJ串i叩Ib 0 吏割製耳 j竺j一.在 manage
20、r包下創(chuàng)建一個(gè)接口IUserLoginManager.java文件:- d 擊 manager -d 筋 implL 血 nager H java辺 eer LoginMangsr.testlT Test,javanager.£ Ma nager. jaa10)在IUserLogi nMan ager.java 接口中寫(xiě):puJjTic abstract String check Uaei: Login user info);寫(xiě)這個(gè)方法,因?yàn)槲覀円跇I(yè)務(wù)邏輯層UserLoginManager.java中寫(xiě)check()hql語(yǔ)句進(jìn)行檢查用戶登錄名稱和密碼是否正確,而UserLogi
21、nMan ager.javaIUserLogi nMa nager.java接口的所以就要在這里寫(xiě)這個(gè)方法。還有一個(gè)原因是這是目用到了 Spring,Spring的優(yōu)點(diǎn)就是讓類去實(shí)現(xiàn)接口,體現(xiàn)了解耦合的好處。方法和是實(shí)現(xiàn)ssh項(xiàng)11)在業(yè)務(wù)邏輯層 UserLogi nMan ager.java 中寫(xiě):public class UserLoinUmer extends EaseHarjagercliserLxia tilements lUserLoiLlIaner 讓這個(gè)類繼承BaseManager<UserLogin>(泛型的 BaseManager)還要實(shí)現(xiàn)剛才寫(xiě)的那個(gè)Iuser
22、Logi nMan ager 接口。在這個(gè)類里面寫(xiě)puJillo String checR; UserLogin userinfo) 這個(gè)check()方法是用來(lái)檢查用戶在登陸頁(yè)面的時(shí)候登錄名和登錄密碼是否與數(shù)據(jù)庫(kù) 里的一致。具體方法如圖:putoXiC String ctieclC (TJserLogin ilseis info) Stringrom UaerLogin u whetm u- username"? and u- password-?Object valuesnew Object2;values=userin±o.getUsername);valuesi=u
23、3erin±Q,getPassword);List<U3erLogin> list dao, findsvHcjl thql, values);if(list != return )else( returnnuU. ££ list. size () > ) F員 TLEE:說(shuō)明:String tLl= "from UseuLoin u where u- userrLaKie=7 and u. pa3siTorci= ?"就是一個(gè)傳給數(shù)據(jù)庫(kù)的hql(hibernate查詢語(yǔ)言)語(yǔ)句。0)3jeCt value3=new Obje
24、ct 2; valu.e3Ci =u3erinfo.getUsername ): val Lies L =LL3euinf o . qetPassword ( ;就是一個(gè)對(duì)象數(shù)組,數(shù)組下標(biāo)從 values0表示的獲取用戶名的值0開(kāi)始,values1表示的是獲取用戶密碼的值u.user name= ?貝 values0 就是獲取 user name 的值; 如果第一個(gè)是 u.password= ?貝 values0 就是獲取 password的值。定要注意位置寫(xiě)反了就永遠(yuǎn)查不出來(lái)了。注意:剛才的hql語(yǔ)句第一個(gè)是LisLUserLogin.?- list- = dao. f indByHql (
25、hql, values);利用dao調(diào)用findByHql() 方法,里面參數(shù)hql(剛才的String hql)和values(剛才的 對(duì)象數(shù)組)。返回的結(jié)果用 ListvUserLogin> list來(lái)接(泛型版本的)。if(list != return.elseretainmil 1irst. srse t J > J £就是如果list返回success否則就返回failed不為空而且里面有相應(yīng)的數(shù)據(jù)(也就是list的大小>0)就說(shuō)明查詢成功P Ml aBBBeaSBBB値H12)在 i讓此類繼承 lACmilBH,再把 lUserLoginManager成
26、set方法,再添加check方法(添加未實(shí)現(xiàn)方法還要改名為check方法)。具體代碼如下圖:中寫(xiě)代碼:接口作為字段生puhlic class LTserLoinActiar ext ends BaseActioiKUseuLolnXi vjitTuaer Ing-i yutanager;fWiXic VC14 secLuaec ioinaanagerUserhoginflanager msec loginnanaer luser logiririanager = i-iseEioginmanager;pubXlc 直 Ct xoziF or MCE d check A 匚 t ionHciji
27、 卩丨口號(hào) 口h 召亍 負(fù) c匕 i enF arm ang 1, quest argS , HtVpServletRspouse ar3) throws Ezcept-ioniFflPcl naiTl iisr Ingin = n ITaHrT.ocfi ti (1 ;EcanVPilnQOFrJfQpof匕丄09(u口ceIo甘in acgltretLiiiJL aruO hrindrot vmd(Iluy iiuiiHEiHijex. * clitck (lu吐l Jcijlci);說(shuō)明:把 IUserLoginManager接口作為字段(這是一種設(shè)計(jì)模式叫做簡(jiǎn)單工廠。在check()方
28、法中:先實(shí)例化 UserLogin ,利用 BeanUtils 的 copyProperties(實(shí)例 userlogin,ActionForm 的arg1)方法,就是把ActionForm的實(shí)例arg1得到的實(shí)體(從頁(yè)面得到的用戶輸入的用戶名 和密碼)整個(gè)拷貝給實(shí)例 userlogin 。返 回 ActionMapping 的實(shí)例 argO 的 findForward( 接口 的實(shí)例.check(實(shí)例 userlogi n) 方法。1.13)找到 I SaaBrafiSHal修改代碼:<propert.y name- "mappingResources* pojo/UaetL
29、ogin, htiiti- Kitil <yvaluer</1ist></propeetv寫(xiě)上自己寫(xiě)的映射文件名稱和路徑。<beaii ici=MD曰口” cla3s='*'dao. impl.eproperty naitie="3essLonFactory'"> <c-ef iocal="SessionFactory"Z>- </propei;ty>2.檢查中的包名類名是否一致,如果一致就不用修改。相應(yīng)的包名類名和自己的項(xiàng)目3.<toean id- *'U
30、3erLoginlIan«ger c 1«3S«, iKipl .UserLoginBanag電r<propertvYzrei lccaJ.= "Dao</bean>把寫(xiě)的UserLoginManager注入到Spring里面去。4.Cbean ii:l=3 act ion+ UerLoinJlcrt ion" c las5=a h act ion + Ume匸Lo日iniut ion<propevtv na:iie= iusetloaimtienacrer";<re£ local"U
31、serLoginBa口ager"</property></tean>把 UserLoginAction注入到 Spring 里面去。14)在耐sp中寫(xiě)一個(gè)鏈接說(shuō)明:登陸成功后進(jìn)入success.jsp會(huì)顯示相應(yīng)的鏈接<13cid7>Ya hre± = "check - do">cha ku口</a> </body>如果登錄失敗就會(huì)顯示404錯(cuò)誤15)在 man ager包里面創(chuàng)建一個(gè) test包在創(chuàng)建一個(gè)帶有 ma in ()方法的test 類:managerJ 扭 impii> -
32、 7|1 BaseHanager.'java |£ User Login M anag er Ja test 宙遡閻I BaseM Snag er. java IManaaerdavdI UserLog in M nsg&r, javgp -B l-囚兇3 ; -A A- -B寫(xiě)這個(gè)測(cè)試類就是為了利用for循環(huán)在表里插入相應(yīng)的數(shù)據(jù)SqlServer2005中光新建一個(gè)數(shù)據(jù)庫(kù)sshdenglu就行了,它可以生成循環(huán)插入的數(shù)據(jù)。i值是可以變的,在UserLogin表里面還有注意:在1 jpplicatBnCortext. xvproperty n ame="ur
33、l"sshdenglu ">value="jdbc:sqlserver:/:1433;databaseName=</pro perty>數(shù)據(jù)庫(kù)的名稱和你新建數(shù)據(jù)庫(kù)的名稱一樣就行了。寫(xiě)如下代碼:public static void引 BeanFacta守 loearJa:tc巧rw riLeEyst乞it副LAppLicatlonCoute)(11"UebRooc/lilE-ixr/applicition:ontSKt.nL"|; VaerLoginaaLasej; u=erIcgi:B&n=ger =
34、 (UssiLajiuHaxiajei;) h e aiF ec t or 7. ce t e an (LserLnJ* anags r * |;for (int i = Qj i c 10; in) LserLogin vserlogir. = rft UarLoLnj);i;5*rlogiii,MtIJ"erniire ('屮戦);氐:P=昨匹皿(吟尹+J ;L;serlcgi nmarage r. save Dn? (user 匕 gi nJ:說(shuō)明:B=£fiFactorV beanFactoryrw fileSvstemXmUppLicitioiiCinte
35、iitCtfetRooL/UEF-IIir/arplicaticiiCoiitEZt dtiL);因?yàn)樵贏 jpplicaticnCcintexLx中對(duì)于實(shí)體類的注入,所以用BeanFactory(Bean工廠)利用new 個(gè)xml文件并把找到的 spring 的xml文件放進(jìn)新new的xml中去,這樣就可以讓測(cè)試類找到注入的相關(guān)東西。庇血皿汕訛期:i:3e:Locimaiiager =佃呂山皿刖了啞旳 teanfactory.getSeantWogiiiHjiagei'l;不會(huì)解釋,只知道讓測(cè)試類找到業(yè)務(wù)邏輯層UserLog in Ma nager的代碼就是這樣寫(xiě)。for (int
36、i = Oj 1 < 10; 1+) Use匸Login Kiser login = new UserLog-iii (); usei;login.setUsername ( "a" + i);user login. setPassTuor d (;useir logiritw&nager . ssveOiie (user io giiij :利用 中。for循環(huán)往數(shù)據(jù)庫(kù)里面插入數(shù)據(jù)先用實(shí)體類設(shè)置相應(yīng)的數(shù)據(jù)再把實(shí)體類保存到業(yè)務(wù)邏輯層先測(cè)試Test,右鍵mainO 方法: 也 Add to Snippets.,16)Alt+ShiFt+X, R冷 LUn on
37、ServerEebyg AsProFile AsTftflm逍 3 HyEclifBG Server Application執(zhí)行后先看數(shù)據(jù)庫(kù)里面是否有UserLogin表再打開(kāi)表查看插入的數(shù)據(jù)是否正確!public Li些 checkAll0<17 )啟動(dòng)Tocat運(yùn)行項(xiàng)目,登陸查看是否成功,若成功就會(huì)顯示18 )點(diǎn)擊chaxun 鏈接后要顯示所有數(shù)據(jù)庫(kù)里的東西。創(chuàng)建一個(gè)帶有表單的jsp頁(yè)面蟲(chóng)刖然后把vbody>v/body>里面的代碼都去掉寫(xiě)如下代碼:<bodv><logic : iterate id”beaii” nait»e"1 i
38、st" >擊 fbean zLd finbsp ; sutiap; bean. usern&tne finJosp; tnJoap; Wean,passuord ) snt)3i); fiWsp; snLsp;<9 hre±=fde 1 do?sid=?bEsn. id ">9hanc?hu</a>4nJD3pj tnbsp; la href = "geng . do ?3 id= S bean, id >gengx/ aXbr / >logic:iterated就是為了在查詢成功頁(yè)面上顯示:$ bean
39、.id tfbean.useniame S(b&aii.pa3sw<>rd shaiichuget諂泄說(shuō)明:利用logic : iterate 標(biāo)簽和EL表達(dá)式循環(huán)輸岀數(shù)據(jù)庫(kù)里面的東西: id= "bean ” (bean 也以隨便起名字)name= "list ” (為什么見(jiàn)下邊第 21步)和bemid :獲取id號(hào)碼IStbean.uaernaime卄:獲取用戶名 |?bean,pas3woi:d H:獲取密碼hcef-deJ.,do?aid-Sbeflin.id*>ahanchu</8i> 通過(guò) id hcef"geng
40、 do?3id?bean* id >gengKin</a>- 通過(guò) id刪除更新19)找到往里面填寫(xiě)查詢所有的方法(checkAllO)public List checltJllI ();20 )找到E -”自HHESBISISIBIIBIi也往里面寫(xiě)查詢所有的方法(皿旳吩)StringU曰euL口irT'Lrst<U3ei:Login> list = dao . £IndEyHil (liql, mil 1 );iflist != nul± && list.size> return list;return nuU
41、.;說(shuō)明:list利用 dao.findByHqlO來(lái)接收方法,傳hql語(yǔ)句和因?yàn)闆](méi)有第二個(gè)參數(shù)所以寫(xiě)null還用如果list則返回null21 )找到址 UserLoginAction.Java不為空而且大小0就返回list(也就是把所有從數(shù)據(jù)庫(kù)里面查到的都返回寫(xiě)代碼,其實(shí)就把剛才寫(xiě)過(guò)的那個(gè)check()方法復(fù)制一下,然后改寫(xiě)就行了:public ietlonforward chaikAll tAcrtzinMappiti nappingr Acnoirora forjti,HttpServletPecjuest Cmcjuemt, HttpSerwle二Response response
42、throws Exceptionfrequest * setAttr Uoute "liaC-'f, lufler L oginsiAneier - chectkL L (| jretum mapp ing. f indFo Cuard (*3 Li:;e 3 s ;把方法名改寫(xiě)為checkAll()參數(shù)把a(bǔ)rg0方法arg1改成 mapping 改成form 改成 request 改成 responsearg2arg3用 request.setAttributeO;的返回值設(shè)置給“ list”這也就是為什么上面的第把 Iuserloginmanager接口中的18步的頁(yè)面中
43、的 name=checkAllO 方法 “l(fā)ist ”了。并返回 sucess22 )找到strdts-wnfig.xmi,在 <action-mappings>中寫(xiě)vac tian, pat h='"7 check" pataicie匸ec="checkAll" validate="falae" cc»pe="reque3t" t7pe="gtrut3.action-UserLaginActian" <£or ward<f or Ttrar
44、d< / ac t i o n>name = Slice 33* path= */checkSuces3 . sp "5 V/forwards naine=Eailed" pg.th=yfailed,dox/focueud說(shuō)明:因?yàn)樵?successesp頁(yè)面上寫(xiě)的是 <anei="iiiiiii>i所以 patl= “/check ” parameter= " checlAll "(執(zhí)行 不使用驗(yàn)證框架作用域?yàn)?request成功返回 checkSucess.jsp失敗返回failed.do23 )測(cè)試一下數(shù)據(jù)庫(kù)里面的
45、數(shù)據(jù)能否顯示24 )找到L:-2 IHOmM腳ITO寫(xiě)一個(gè)刪除的方法:Pulillo boolean delByld (Integer idj ;要利用25 )找到|> 如 SBSBBDrTn I 寫(xiě)相應(yīng)的刪除方法:checkAll 方法)id刪除數(shù)據(jù)所以傳主鍵id 。inihlic boolean delByld Irteeer id) da.o * delete (dac. get (UsefLcgin. class return true;/ret-uirn false;所以還要用dao.getO獲說(shuō)明:利用dai調(diào)用delete()方法,這個(gè)參數(shù)是一個(gè)實(shí)體,得實(shí)體,get()的需
46、要2個(gè)參數(shù)一個(gè)是實(shí)體類一個(gè)是id所以要寫(xiě)成:dai.get(UserLigin.Class,id)再把它放進(jìn) dai.deiete()里面就是:dai.deiete(dai.get(UserLig in .Classjd);這樣了返回是biilean 型所以返回true 。26)找到a帕機(jī)旳祇tg問(wèn):寫(xiě)相應(yīng)的刪除方法。ubXic Acs 11 cnF-Oir war d delByld (ictiofiSaf ping tnnppingr Act i. or Foran ±oc»,H11tSerV1etouest reauest. HttpServletFesponse r
47、esponse)thtmrs Exceptlonf3tr z-ng Integer paxscZzi t (request gctPnran匸匕er (rd*) Ji± (iLiserlDCfinmanacef. leiEyr匚(stzrit口) | return napp ing-±indFncvtnd('suciss"J;el.Bereturn nappinc.XiadF口匚v&udf X&iled");說(shuō)明:Integer string - Integer. paraeint (request .getParotnetcr;
48、獲取一行數(shù)據(jù)的id號(hào)i± (luset 1 gilutianag-eu . de lEyld (st匚 ing) return mapp ing.fi iidrorifard (;elsereturn mapping, iindFocd(;通過(guò)傳id執(zhí)行接口中的刪除方法,返回成功或者失敗。27)在 checkSucess.jsp中頁(yè)面上寫(xiě)的是:<曰 href del. do?sLd= $ bean. idH slruts-conFig.xfnL c所以在'1中的 <action-mappings>標(biāo)簽中寫(xiě):Faction pa.th.= *7del para
49、iriec.er=f*deLEyldf validate = alssee?卩£="匸£可£3匸" type = "3t:ut 3 * action. U3erLoginAction"> <f rua.rd<f or war d£/actiontiaineu "gucessT patli=oriyaEd>rLa2ne=Led'F path="/f ai led- dci*X/for war d>說(shuō)明:Path= “ /del ”說(shuō)明是del.doparame
50、ter“ delByld "執(zhí)行 delByld 方法不使用驗(yàn)證框架作用域request因?yàn)槲乙鼊h除后還在本頁(yè)不跳另一個(gè)頁(yè)面所以我寫(xiě)的是失敗跳到failed.docheck.do 也就是本頁(yè)的意思28)執(zhí)行一下看看能否刪除(不報(bào)錯(cuò)),報(bào)錯(cuò)了在檢查一下看看哪里寫(xiě)錯(cuò)了,尤其是K struts-匸onfigxml I是否和自己起的名字是否一樣?要不就是返回值的問(wèn)題和在Action 中哪里返回的是空值。29)找到宙Jl在方法中寫(xiě)一個(gè)更新的方法。puljlic! List(Integer id);返回list結(jié)果集,也是根據(jù)id更新,傳id值。30 )找到在方法里寫(xiě)一個(gè)更新的方法:PuiJl
51、ic List ffengBvId Integer id) String hql-" from UsetLogin whete id-?name = dao . 1 itidB vHctl (hq 1, Id J ;Li3C<U3ei:Login>return name;說(shuō)明:這個(gè)方法的參數(shù)是主鍵id ,通過(guò) dao 調(diào)用 findByHql()In teger id參數(shù)id是上面 返回相應(yīng)的集合方法,參數(shù) hql是通過(guò)id 查詢UserLogin 表 傳過(guò)來(lái)的。(集合里面有用戶名和密碼)。31 )找到困也也寫(xiě)一個(gè)更新的方法:Eiiblic Jictionforward
52、genBvIdiActionHapin napf ing, kctionForn for,HttfServIetRsquest 匚equestj EttpSeE丫letEtap匚nae 匚eapnse) thrufs Enu巳ptioiiInxeg*r string = Integer.pdreJnt(request,getParameter("5id");request .setAttr ibuteTTiserloinmarager. gen牙Byli(曰tt二陽(yáng)| );re turn rrmp ping, findTor ward建勺守r);說(shuō)明:接收從頁(yè)面?zhèn)鬟^(guò)來(lái)的 i
53、d值注意要進(jìn)行類型轉(zhuǎn)換 ,利用request.setAttributeO方法,第二個(gè)參數(shù)是從接口的實(shí)例中調(diào)用更新的方法(gen gByld() 取岀的值設(shè)置給第一個(gè)參 數(shù) "ge ngxin "然后返回成功。32 )找到:寫(xiě)岀更新par aineteE7=EgengETid'L3 c o p e = "request"faction pa匸h= 牙亡ix疹"¥alidate="£al3e"tvpe= 31 r at s . action. ITs er Login JLct.ion"
54、39;><;£oruar d name = sucess pabh=/ genxrrL. jor KTard!><£arward aame= ailei" pat-li="/failed,(</act ion>|說(shuō)明:因?yàn)閔re£-geng.do?3Ld=?bean* id> ">gengxin</a>代碼所以:path 屬性=“/geng ” 執(zhí)行的是 gengById()方法所以 parameters=" gengById ” 作用域是 request 所以 s
55、cope="request ” 如果成功返回 gengxin.jsp 頁(yè)面如果失敗返回failed.do 。-J33 )創(chuàng)建一個(gè)帶form的更新頁(yè)面-二.eenocin jsp寫(xiě)一行g(shù)engx inchenggong-<bi:>34 )測(cè)試一下看看點(diǎn)擊更新鏈接翌遲空能否跳轉(zhuǎn)到 gengxin.jsp35)找到:;0 HffiBHHMMBBI寫(xiě)一個(gè)反選更新的方法:衛(wèi) 111111C void f(UserzLogin logins ;它是說(shuō)明:當(dāng)在 gengxin.jsp點(diǎn)擊更新按鈕的時(shí)候執(zhí)行更新的方法。36 )找到&也U壬譏旳別1維級(jí)""也寫(xiě)一
56、個(gè)反選更新的方法:fiuliZLlc vox d try (f xgengByld. (ITs er Login login) catchdao . upciftt皀(login);Exception eJ e * pvintStacfeTtace():說(shuō)明:把實(shí)體 UserLogin 和它的對(duì)象login 作為參數(shù)傳給fxgengByldO,利用dao調(diào)用up date(里面的參數(shù)為對(duì)象logi n),進(jìn)行語(yǔ)句的更新。37)找到a U則噸nA如,網(wǎng)寫(xiě)一個(gè)反選更新的方法:pobixc Jiccionrorward 1 xgengEyici(aclLoiiHt±tJpLrjg 上i&fjpiiiyr Jt:匚 1 onroriii lortHttpServletPequest cecjiies匚,tit-tpServletFes
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省雄安新區(qū)2026屆高三上學(xué)期1月期末考試歷史試卷(含答案)
- 安徽省蕪湖市無(wú)為市部分學(xué)校2025-2026年九年級(jí)上學(xué)期1月期末考試道德與法治試卷(含答案)
- 2025-2026學(xué)年天津市河北區(qū)九年級(jí)(上)期末物理試卷(含答案)
- 五年級(jí)下冊(cè)期末考試卷及答案
- 網(wǎng)易筆試題庫(kù)及答案
- 2022-2023年部編版八年級(jí)語(yǔ)文(上冊(cè)期末)練習(xí)及答案
- 成都風(fēng)俗習(xí)慣禮儀知識(shí)
- 烏馬河2022年事業(yè)編招聘考試模擬試題及答案解析19
- 2022~2023水利設(shè)施管養(yǎng)人員考試題庫(kù)及答案第627期
- 數(shù)理方程考試試卷及答案
- 江蘇交控集團(tuán)招聘筆試題
- 2026屆浙江省寧波市九校數(shù)學(xué)高一上期末監(jiān)測(cè)試題含解析
- 2025-2030中國(guó)低壓變頻器行業(yè)營(yíng)銷渠道及投融資方式分析研究報(bào)告
- 2025山東恒豐銀行濟(jì)南分行社會(huì)招聘1人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 渠道管理制度規(guī)范
- 2025年企業(yè)安全生產(chǎn)培訓(xùn)講義
- GB/T 714-2025橋梁用結(jié)構(gòu)鋼
- 心臟瓣膜置換術(shù)護(hù)理查房
- 【診療方案】慢性阻塞性肺疾病診治指南(2025年修訂版)
- 初三上學(xué)期物理期末復(fù)習(xí)知識(shí)詳解(含答案)
- 營(yíng)養(yǎng)員指導(dǎo)員培訓(xùn)
評(píng)論
0/150
提交評(píng)論