5.26日(rì)音(yīn)訊,Stru✘γ☆₹ts2必須掌握的(de)知(zhī)識
日(rì)期:2013-05-26發布:首創網絡浏覽:785次
5.26日(rì)音(yīn)訊,Str$uts2必須掌握的(de)知(zhī)識。Struts2是(sh•★♠πì)在WebWork2基礎發展而來(lái)的(de)εε 。和(hé)struts1一(yī)樣,Struts2也(yě↓π✘)屬于MVC框架。一(yī)、Struts2類型轉換介紹 ✘ ε類型轉換:解析HTTP請(qǐng)求參¥>數(shù),将Http請(qǐng)求參數(shù)賦值給Act♥∑≥i···
本文(wén)關鍵字:5.26日(rì),音(yīn)訊,Struts2,必Ω<須,掌握,的(de),知(zhī)識,5.26日(rì),
5.26日(rì)音(yīn)訊,Str≥§¶→uts2必須掌握的(de)知(zhī)識。Struts2是(s≤₽ hì)在WebWork2基礎發展而來(l®'ái)的(de)。和(hé)struts♠'∑✘1一(yī)樣,Struts2也(yě)屬于→ ≠MVC框架。一(yī)、Struts2類型轉換介紹
類型轉換:解析HTTP請(qǐng)求參數(sh₩♣Ωù),将Http請(qǐng)求參數(shù)賦值給Action的(<α™←de)屬性;比如(rú):
此處将名為(wèi)name、password、age的≥±×(de)值賦值給Action的(de)屬性,類型轉換是(shì)指這(§₽®zhè)個(gè)賦值過程中可(kě)能(néng)出現(xiàn)的(de☆♣ )類型不(bù)一(yī)緻問(wèn)題而做(z<≤♥™uò)出的(de)轉換,因為(wèi)HTTP參數(shù)都(dōu)✘✔÷是(shì)字符串類型的(de);因此從(cóng)₩'String類型的(de)age參數(shù)傳給in≤≤>t類型的(de)age屬性時(shí),就(jiù)需"Ω↑¥要(yào)類型轉換,當然這(zhè)些(xiē)α♦struts2框架已經做(zuò)完了(≥≠↔le),開(kāi)發人(rén)員(yuán)不(bù)需要(α'yào)自(zì)行(xíng)處理(lǐ);
Struts2已經內(nèi)建了(le)對(duì)于₽δ¥String和(hé)基本類型的(de)類型轉換,比如(rú)Str§₩ing<-->int、String<-->boolean等;
Action屬性一(yī)定要(yà↓€ε∞o)有(yǒu)getter和(hé)sett✔±er方法!
Struts2提供了(le)強大(dà)的(de)類型轉換支持πα→,不(bù)僅提供了(le)內(nèi)置的(d♣α©'e)類型轉換器(qì),還(hái)可(kě)以自(zì←♣≥)定義類型轉換器(qì),以滿足自(zì)定義需求;
Struts2類型轉換是(shì)通(tōng)過params攔截≠₹∑器(qì)進行(xíng)轉換;如(rú)果轉♣≥§換失敗,則conversionError攔截器(qì)攔截該異常,并封裝到(α∞♥dào)fieldError中,放(fàng)入Action≥<γ≥Context中;
Struts2類型轉換還(hái)支持OGNL表達式,隻需 ♦要(yào)在表單控件(jiàn)的(de)name屬性使用(yòng)og♥•nl表達式即可(kě),比如(rú)表單控件(jiàn)的(de≈<λ)name屬性為(wèi)user.name,則此控件(jiàn)的(de)數¥→&(shù)據将進入賦值給Action的(de)use↕↓r屬性中的(de)name屬性;
二、通(tōng)過一(yī)個(gè)例≤÷φ子(zǐ)初步了(le)解Struts2類型轉換
此處的(de)類型轉換因為(wèi)是(shì)內♠$÷(nèi)建的(de),因此代碼上(shàng)和(hé)原來(lái)的₹ (de)struts2應用(yòng)沒有(yǒu)不(bù)同,st€¥∞ruts2框架內(nèi)部完成了(le)所有(yǒu)了(le)類型轉換,以δ<¶≠下(xià)程序是(shì)将name、age賦值給Action類的(de)₽ name、age屬性,gender、salary賦值給p.¶♣∏₩gender、p.salary屬性;struts.xml的(de)配₽•置和(hé)原來(lái)一(yī)樣,所以α€®就(jiù)不(bù)給出了(le);
Conversion01Action.java
packageorg.conversion.act∏♥ion;
importorg.person.Peβδ×rson;
importcom.opensymphony≠≥®.xwork2.ActionSupport;
publicclassConversion01Actionexten₽→dsActionSupport{
privateStringname☆£;
privateintage;
privatePersonp;
publicStringexecute()thro♦≤≠λwsException{
System.out.println(naΩ₩me);
System.out.println(age);
System.out.println(p.getGende÷§r());
System.out.println(p.getSalar←£y());
returnSUCCESS;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage↕δ<){
this.age=age;
}
publicPersongetP(){
returnp;
}
publicvoidsetP(Personp){
this.p=p;
}
}
1.jsp
此處需要(yào)注意的(de)是(shì)性别、薪水(shuǐ≤₹₹")的(de)表單控件(jiàn)的(de)name屬性是(shì)♣↕♠ OGNL表達式;