锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
鎴戠殑澶村ソ鏅曘?
濂藉儚鐑ф洿楂樹(shù)簡(jiǎn)錛屾垜涓嶇煡閬擄紝涓鐩存槒鏄忔矇娌夌殑銆?
鎴戜粠灞變笂璺屼笅鏉ョ殑鏃跺欙紝澶╀綉璇曞浘鎷変綇鎴戣叞闂寸殑緇崇儲(chǔ)錛屽彲鎯уお澶э紝榪炰粬涔熻涓璧鋒壇
浜?jiǎn)涓嬫潵銆?
瑙﹀埌鍦伴潰鐨勭Н闆椂鎴戞槒浜?jiǎn)杩囧幓锛岄殣绾︽劅瑙夊ぉ浣戞妸鎴戣儗杩涗簡(jiǎn)杩欎釜灏忓北娲炪傛棤綰跨數(shù)鎽斿潖
浜?jiǎn)锛屾垜涓嶇煡閬撴棄櫁村埌搴晿q囦簡(jiǎn)澶氫箙錛屾垜涔熶笉鐭ラ亾鎴戜滑鍒板簳榪樿兘涓嶈兘寰楁晳錛屾垜鐨勫弻鑵垮彲鑳?
璺屾柇浜?jiǎn)锛屼竴鐩存病鏈夌煡瑙夈?
澶╀綉鍙槸杞誨井鐨勬摝浼わ紝浠栦竴鐩寸収欏劇潃鎴戯紝鍋跺皵娓呴啋鐨勬椂鍊欙紝鐪嬭浠栫殑鑴革紝鍜屼粬娓╂煍鐨?
鐪肩潧浼?xì)璁╂垜鎰熻濂戒簺锛岃櫧鐒朵粬涔熶竴鐩存剚鐪変笉灞曘?
鈥滃ぉ浣戯紝浣犺鍏朵粬浜轟細(xì)鎵懼埌鎴戜滑鍚楋紵鈥?
浠栫柌鎯殑絎戠瑧錛氣滄収鎱э紝鍒兂閭d箞澶氾紝榪樼柤鍚楋紵鈥?
鈥滆剼榪樻槸娌$煡瑙夛紝灝辨槸瑙夊緱濂藉喎銆傗?
澶╀綉寰涓婄埇浜?jiǎn)涓鐐癸紝鎶婃垜鎶卞湪浠栨閲屻?
鈥滃ソ鐐瑰悧錛熲?
鈥滃棷銆傗濅篃璁稿彧鏄績(jī)鐞嗕綔鐢紝浣嗘垜榪樻槸鎰熻鍒頒竴涓濇俯鏆栥?
鈥滄収鎱э紝鎴戞湁涓涓ソ娑堟伅鍜屼竴涓潖娑堟伅錛屼綘鎯沖厛鍚摢涓紵鈥?
鈥滃潖娑堟伅銆傗?
鈥滄垜浠殑椋熺墿蹇悆瀹屼簡(jiǎn)錛岃繕鍓╀笅涓鐗堝閥鍏嬪姏銆傗?
鈥滈偅濂芥秷鎭憿錛熲?
鈥滈洩宕╀簡(jiǎn)錛屾礊鍙h闆皝浜?jiǎn)澶у崐锛尳I烘皵榪樿兘榪涙潵錛屾垜浠ぇ姒傚媺寮鴻繕鑳界埇鍑哄幓銆傗?
鈥滆繖綆椾粈涔堝ソ娑堟伅錛佹垜浠姝誨湪榪欓噷浜?jiǎn)锛佲濇垜鐨勭溂娉毦榪囧緱涓涓嬪瓙鍐蹭簡(jiǎn)鍑烘潵銆?
鈥滃偦鐡滐紝榪欐槸鑰佸ぉ鍦ㄨ鎴戜滑浜彈浜屼漢涓栫晫鍛€傗濆ぉ浣戠瑧浜?jiǎn)銆?
鈥滀綘榪樻湁蹇?jī)鎯呭紑鐜╃瑧銆傗濇垜琚粬閫椾箰浜?jiǎn)锛屽挍_椊璧鋒潵銆?
澶╀綉杞昏交鎷嶇潃鎴戠殑鑳岋紝鎶婃垜鎼傚湪鎬閲屻?
鈥滄収鎱э紝絳夋垜浠洖鍘諱簡(jiǎn)錛岀瓟搴旀垜瀚佺粰鎴戝ソ鍚楋紵鈥?
鈥滄垜浠繕鍥炵殑鍘誨悧錛熲?
鈥滃綋鐒跺彲浠ワ紒鎴戜滑鍦ㄤ竴璧瘋繖涔堥暱鏃墮棿浜?jiǎn)锛屾垜閮芥病鏈夋寮忓悜浣犳眰杩囧锛屼篃璁哥幇鍦ㄤ笉鍚堟?
瀹滐紝浣嗘槸鎴戞兂榪欎釜鏃跺欎綘鑲畾涓嶄細(xì)鎷掔粷鎴戯紝鎵浠ワ紝絳斿簲鎴戯紝瀚佺粰鎴戝ソ鍚楋紵鈥?
鎴戝摥浜?jiǎn)锛屼絾杩檵啤鏄q哥鐨勭溂娉?
鈥滃ソ鐨勶紝澶╀綉錛屾垜絳斿簲浣犮傗?
鈥滀箹瀛╁瓙錛屼負(fù)浜?jiǎn)閭d竴澶╋紝浣犱竴瀹氫笉瑕佽交璦鏀懼純錛屽ソ濂芥椿涓嬪幓錛岀瓟搴旀垜錛屽ソ鍚楋紵鈥?
鈥滃ソ鐨勩傗濇垜鎷煎懡鐨勭偣澶達(dá)紝鍙張涓涓嬪瓙澶存檿浜?jiǎn)銆?
鈥滃ソ浜?jiǎn)锛屼箹涔栫殑鐫′竴涓嬶紝鎴戜細(xì)鍙啋浣犵殑銆傗?
鈥滃ぉ浣戯紝鎴戠殑鑴氳繕鏄病鏈夌煡瑙夈傗?
澶╀綉鐖埌鎴戣剼杈廣傗滄劅瑙夊埌鎴戝湪鎺愪綘鍚楋紵鈥?
鈥滄病鏈夆濄?
鈥滆繖鏍峰憿錛熲?
鈥滆繕鏄病鏈夈傗?
鈥滆繖鏍鳳紵鈥?
鈥滄病鏈夈傗?
澶╀綉絎戠瑧錛氣滃懙鍛碉紝鎱ф収錛屼綘鐨勮剼鐖北绱簡(jiǎn)錛屽畠鎯沖ソ濂戒紤鎭竴涓嬨傗?
鈥滃ぉ浣戯紝濡傛灉鎴戜笉鑳借蛋璺簡(jiǎn)錛屼綘榪樹(shù)細(xì)瑕佹垜鍚楋紵鈥?
鈥滆錛佷笉綆′綘鍙樻垚浠涔堟牱鎴戦兘瑕侊紒鈥?
鈥滃ぉ浣戔︹︹?
鈥滃ソ浜?jiǎn)锛屾収鎱уQ屽ソ濂界潯錛屾潵錛岄棴涓婄溂鐫涖傗?
鎴戠潯浜?jiǎn)杩囧巺R?
鍐嶆琚憞閱掔殑鏃跺欙紝澶存檿寰楁洿鍘夊浜?jiǎn)銆傚ぉ浣戞嬁鐫宸у厠鍔涘湪鎴戦潰鍓嶆檭鐫銆?
鈥滄収鎱э紝鍚冮キ鍜傗?
鈥滀綘鍚冨惂錛屾垜涓嶉タ銆傗?
鈥滀笉琛岋紝濂藉瀛愬惉璇濄傗?
鈥滃彲鎴戝枆鍜欏共鐨勫捊涓嶄笅涓滆タ銆傗?
澶╀綉鎯充簡(jiǎn)鎯籌紝鎶婂閥鍏嬪姏鎺頒笅涓灝忓潡鏀捐繘鍢撮噷鍚簡(jiǎn)涓浼?xì)鍎垮Q屽惢浣忎簡(jiǎn)鎴戙?
铻嶅寲鐨勭儹宸у厠鍔涢『鐫浠栫殑鍢村攪嫻佽繘鎴戝共娑哥殑鍢撮噷錛岃櫧鐒舵垜鐨勫懗钑懼凡緇忛夯鐥癸紝浣嗘垜榪樻槸
闅愮害鎰熷埌浜?jiǎn)涓涓濈敎鍛熾傚ぉ浣戝張鐢ㄥ槾铻嶅寲浜?jiǎn)涓灝忓潡闆紝閫佽繘鎴戝彛閲屻傚氨榪欐牱涓鍙e閥鍏?
鍔涳紝涓鍙i洩錛屽ぉ浣戞妸涓鐗堝閥鍏嬪姏鐨勪袱灝忓潡閫佽繘浜?jiǎn)鎴戠殑桧n浣撻噷錛屾垜鐨勮儍闅愰殣鏈変簡(jiǎn)浜涜鏆?
鎰忥紝浣嗗ご鏇存檿浜?jiǎn)銆?
鈥滃ぉ浣戯紝浣犱笉鍚冨悧錛熲濅粬灝嗗墿涓嬬殑宸у厠鍔涙敹浜?jiǎn)钃v鏉ャ?
鈥滄垜鍠備綘鐨勬椂鍊欎篃鍚冭繃浜?jiǎn)銆傗?
鈥滀綘閮藉杺緇欐垜浜?jiǎn)鍛錛佲?
鈥滄垜榪樻槸浼?xì)鍚儤q涘幓閭d箞涓灝忕偣鐨勶紝浣犱笉鏄繛榪欑偣閮借璺熸垜鎶㈠惂錛屽お榛戜簡(jiǎn)鍣€傚懙鍛點(diǎn)傗?
鎴戞彙绱т簡(jiǎn)澶╀綉鐨勬墜錛氣滀綘瀵規(guī)垜鐪熷ソ銆傗?
鈥滄墍浠ヤ綘瑕佸ソ濂芥椿涓嬪幓鍛錛屼箹錛岀戶緇潯鍚с傗?
鈥滃棷銆傗?
澶村ソ鏅曘?
灝辮繖鏍鳳紝鏁村潡鐨勫閥鍏嬪姏澶╀綉閮藉杺緇欎簡(jiǎn)鎴戯紝鍙粬鑷繁涓鐐歸兘娌″悆錛屾垜闂粬鐨勬椂鍊欙紝浠栬
媧為噷榪樻湁灞遍紶錛屼粬鎶撳埌榪囦袱鍙紝鍙互鍚冪殑錛屼粬榪炵毊甯﹁倝閮藉悆涓嬪幓浜?jiǎn)锛屾墍浠ョ簿鍔涘厖娌涖?
鎴戠煡閬撲粬鍦ㄩ獥鎴戯紝鍙粬鐨勭簿紲炶繕鐪熺殑涓嶉敊錛屽ぇ姒傜湡鐨勬槸鎴戝お铏氬急浜?jiǎn)鍚уQ屽ご鏅曠殑鎴戝揩榪?
璇磋瘽鐨勫姏姘旈兘娌℃湁浜?jiǎn)銆?
緇堜簬錛屾垜浠惉鍒頒簡(jiǎn)鐩村崌椋炴満鐨勮槳楦o紝澶╀綉鍔姏鐨勬帰浜?jiǎn)桧n瀛愬嚭鍘伙紝璇翠簡(jiǎn)浜涗粈涔堬紝鎴戣櫄寮?
鐨勫凡緇忓揩涓嶈浜?jiǎn)锛岀敋鑷硺q炰粬鍠婄殑璇濋兘鍚笉娓呮銆?
杞伴福榪滆蛋浜?jiǎn)銆?
鈥滄収鎱э紝閱掗啋錛屾収鎱с傗?
鎴戝姫鍔涚潄寮鐪箋?
鈥滀綘鍚埌浜?jiǎn)鍚楀Q熺洿鍗囬鏈哄洖鍘誨彇鏁戞彺璁懼浜?jiǎn)銆傗?
鈥滄垜浠粓浜庡緱鏁戜簡(jiǎn)鍚楋紵鈥?
澶╀綉絎戜簡(jiǎn)銆?
鈥滃涓嶈搗錛屾収鎱э紝浠栦滑鍙兘甯︿竴涓漢璧般傛墍浠ワ紝鏄垜寰楁晳浜?jiǎn)銆傗?
鎴戜竴涓嬪瓙娌″弽搴旇繃鏉ヤ粬璇翠粈涔堛?
澶╀綉浼間箮鐪嬪嚭浜?jiǎn)鎴戠枒鎯戠殑琛ㄦ儏銆?
鈥滄垜鍛婅瘔浠栦滑錛岃繖閲屽彧鏈夋垜涓涓漢銆傝阿璋綘錛屾収鎱э紝娌℃湁浣犳垜緇濆鎾戜笉鍒扮幇鍦ㄣ傗?
鎴戣繕鏄病鏄庣櫧浠栧湪璇翠粈涔堬紝浣嗘垜鐪嬭浠栨鎷跨潃鐟炲+鍐涘垁涓涓嬩竴涓嬪埡鍏ユ垜鐨勮吂鑵斻?
鈥滄収鎱э紝浣犵煡閬擄紝鐗╄祫鏄笉澶熺殑錛屾垜涔熶笉鐭ラ亾鎴戜滑絀剁珶浠涔堟椂鍊欒兘寰楁晳錛屾墍浠ヤ綘涓嶇敤鎰?
璋㈡垜鎶婃墍鏈夌殑椋熺墿緇欎綘錛屽鏋滀綘涓嶆椿涓嬪幓鎴戝氨娌℃湁椋熺墿鍜岀敓榪樹(shù)笅鍘葷殑鍙兘浜?jiǎn)銆備絾鏄幇
鍦ㄦ棦鐒舵垜宸茬粡鑾鋒晳錛岄偅浣犵殑浣垮懡涔熷氨緇撴潫浜?jiǎn)锛屾垜瑕佽阿璋綘銆傗濆ぉ浣戝皢鐟炲+鍐涘垁鏈鍚庝竴嬈?
閲嶉噸鐨勬彃鍏ユ垜鐨勮韓浣擄紝鎱㈡參鐨勬棆杞潃銆?
浠栧惢浜?jiǎn)鎴戠殑棰濆ご銆?
鈥滄収鎱э紝涓嬭緢瀛愬啀濞朵綘錛屽埆浜?jiǎn)锛屾垜鐖变綘銆傗?
璇村畬浠栨嫈鍑哄垁瀛愬線澶栫埇鍘匯?
鎴戦紦璧鋒渶鍚庣殑鍔涙皵鎺寮鐩栫潃鎴戜笅鍗婅韓鐨勭潯琚嬨?
鑶濈洊浠ヤ笅鍙墿涓鍫嗘寕鐫琛鑲夌殑媯.鐧介銆?
]]>
1銆傛墍鏈夋誕鐐硅繍綆楅兘鍦ㄦ暟鎹簱鍐呭仛濂斤紝涔熷氨鏄兘鐢╯ql瀹炵幇浜?BR>2銆傜敤BigDecimal瀹炵幇錛屾柟娉曞涓嬶紙浠呬粎鏄釜渚嬪瓙錛夛細(xì)
import java.math.BigDecimal;
public class tt {
/**
* @param args
*/
public static void main(String[] args) {
float a = 1.1f;
float b = 2.2f;
tt t = new tt();
System.out.println(t.add(a,b));
System.out.println(t.sub(a,b));
System.out.println(t.mul(a,b));
System.out.println(t.div(a,b));
System.out.println(t.round(a));
}
public float add(float v1,float v2){//鍔犳硶
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.add(b2).floatValue();
}
public float sub(float v1,float v2){//鍑忔硶
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.subtract(b2).floatValue();
}
public float mul(float v1,float v2){//涔樻硶
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.multiply(b2).floatValue();
}
public float div(float v1,float v2){//闄ゆ硶
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.divide(b2,3,BigDecimal.ROUND_HALF_UP).floatValue();
}
public float round(float v){//鎴彇3浣?BR> BigDecimal b = new BigDecimal(Float.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,3,BigDecimal.ROUND_HALF_UP).floatValue();
}
}
浠ヤ笅鎵璇寸殑struts-config.xml鍜孉pplicationResources.properties絳夋枃浠跺悕鏄己鐪佹椂浣跨敤鐨勶紝濡傛灉浣犱嬌鐢ㄤ簡(jiǎn)澶氭ā鍧楋紝鎴栨寚瀹氫簡(jiǎn)涓嶅悓鐨勮祫婧愭枃浠跺悕縐幫紝榪欎簺鍚嶅瓧瑕佸仛鐩稿簲鐨勪慨鏀廣?/P>
1銆佲淣o bean found under attribute key XXX鈥?BR>鍦╯truts-config.xml閲屽畾涔変簡(jiǎn)涓涓狝ctionForm錛屼絾type灞炴ф寚瀹氱殑綾諱笉瀛樺湪錛宼ype灞炴х殑鍊煎簲璇ユ槸Form綾葷殑鍏ㄥ悕銆傛垨鑰呮槸錛屽湪Action鐨勫畾涔変腑錛宯ame鎴朼ttribute灞炴ф寚瀹氱殑ActionForm涓嶅瓨鍦ㄣ?/P>
2銆佲淐annot find bean XXX in any scope鈥?BR>鍦ˋction閲屼竴鑸細(xì)request.setAttribute()涓浜涘璞★紝鐒跺悗鍦ㄨ漿鍚戠殑jsp鏂囦歡閲岋紙鐢╰ag鎴杛equest.getAttribute()鏂規(guī)硶錛夊緱鍒拌繖浜涘璞″茍鏄劇ず鍑烘潵銆傝繖涓紓甯告槸璇磈sp瑕佸緱鍒頒竴涓璞★紝浣嗗墠闈㈢殑Action閲屽茍娌℃湁灝嗗璞¤緗埌request錛堜篃鍙互鏄痵ession銆乻ervletContext錛夐噷銆?BR>鍙兘鏄悕瀛楅敊浜?jiǎn)锛岃h鏌sp閲岀殑tag鐨勪竴鑸槸name灞炴э紝鎴杇etAttribute()鏂規(guī)硶鐨勫弬鏁板鹼紱鎴栬呮槸Action閫昏緫鏈夐棶棰樻病鏈夋墽琛宻etAttribute()鏂規(guī)硶灝卞厛杞悜浜?jiǎn)銆?BR>榪樻湁鍙﹀涓涓彲鑳斤紝綰補(bǔ)鏄痡sp鏂囦歡鐨勯棶棰橈紝渚嬪<logic:iterate>浼?xì)鎸囧畾涓涓猧d鍊鹼紝鐒跺悗鍦ㄥ驚鐜噷<bean:write>浣跨敤榪欎釜鍊間綔涓簄ame鐨勫鹼紝濡傛灉榪欎袱涓間笉鍚岋紝涔熶細(xì)鍑虹幇姝ゅ紓甯搞傦紙閮芥槸涓涓亾鐞嗭紝request閲屾病鏈夊搴旂殑瀵硅薄銆傦級(jí)
3銆佲淢issing message for key "XXX"鈥?BR>緙哄皯鎵闇鐨勮祫婧愶紝媯(gè)鏌pplicationResources.properties鏂囦歡閲屾槸鍚︽湁jsp鏂囦歡閲岄渶瑕佺殑璧勬簮錛屼緥濡傦細(xì)
<bean:message key="msg.name.prompt"/>
榪欒浠g爜浼?xì)鎵緈sg.name.prompt璧勬簮錛屽鏋淎ppliationResources.properties閲屾病鏈夎繖涓祫婧愬氨浼?xì)鍑虹幇鏈紓甯搞傚湪浣跨敤澶氭ā鍧楁椂錛岃娉ㄦ剰鍦ㄦā鍧楃殑struts-config-xxx.xml閲屾寚瀹氳浣跨敤鐨勮祫婧愭枃浠跺悕縐幫紝鍚﹀垯褰撶劧浠涔堣祫婧愪篃鎵句笉鍒幫紝榪欎篃鏄竴涓緢瀹規(guī)槗鐘殑閿欒銆?/P>
4銆佲淣o getter method for property XXX of bean teacher鈥?BR>榪欐潯寮傚父淇℃伅璇村緱寰堟槑鐧斤紝jsp閲岃鍙栦竴涓猙ean鐨勫睘鎬у嚭鏉ワ紝浣嗚繖涓猙ean騫舵病鏈夎繖涓睘鎬с備綘搴旇媯(gè)鏌sp涓煇涓爣絳劇殑property灞炴х殑鍊箋備緥濡備笅闈唬鐮佷腑鐨刢ade搴旇鏀逛負(fù)code鎵嶅錛?/P>
<bean:write name="teacher" property="cade" filter="true"/>
5銆佲淐annot find ActionMappings or ActionFormBeans collection鈥?BR>寰呰В鍐熾?/P>
6銆佲淐annot retrieve mapping for action XXX鈥?BR>鍦?jsp鐨?lt;form>鏍囩閲屾寚瀹歛ction='/XXX'錛屼絾榪欎釜Action騫舵湭鍦╯truts-config.xml閲岃緗繃銆?/P>
7銆丠TTP Status 404 - /xxx/xxx.jsp
Forward鐨刾ath灞炴ф寚鍚戠殑jsp欏甸潰涓嶅瓨鍦紝璇鋒鏌ヨ礬寰勫拰妯″潡錛屽浜庡悓涓妯″潡涓殑Action杞悜錛宲ath涓笉搴斿寘鍚ā鍧楀悕錛涙ā鍧楅棿杞悜錛岃浣忎嬌鐢╟ontextRelative="true"銆?/P>
8銆佹病鏈変換浣曞紓甯鎬俊鎭紝鏄劇ず絀虹櫧欏甸潰
鍙兘鏄疉ction閲屼嬌鐢ㄧ殑forward涓巗truts-config.xml閲屽畾涔夌殑forward鍚嶇О涓嶅尮閰嶃?/P>
9銆佲淭he element type "XXX" must be terminated by the matching end-tag "XXX".鈥?BR>榪欎釜鏄痵truts-config.xml鏂囦歡鐨勬牸寮忛敊璇紝浠旂粏媯(gè)鏌ュ畠鏄惁鏄壇鏋勭殑xml鏂囦歡錛屽叧浜巟ml鏂囦歡鐨勬牸寮忚繖閲屽氨涓嶈禈榪頒簡(jiǎn)銆?/P>
10銆佲淪ervlet.init() for servlet action threw exception鈥?BR>涓鑸嚭鐜拌繖縐嶅紓甯稿湪鍚庨潰浼?xì)鏄窘C轟竴涓叧浜嶢ctionServlet鐨勫紓甯稿爢鏍堜俊鎭紝鍏朵腑鎸囧嚭浜?jiǎn)寮傚父鍏蜂綋鍑虹幇鍦ㄤ唬鐮佺殑鍝竴琛屻傛垜鏇劇粡閬囧埌鐨勪竴嬈℃彁紺哄涓嬶細(xì)
java.lang.NullPointerException
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)
涓鴻В鍐抽棶棰橈紝鍏堜笅杞絪truts鐨勬簮鐮佸寘錛岀劧鍚庡湪ActionServlet.java鐨勭1003琛屾彃鍏ユ柇鐐癸紝騫跺鍚勫彉閲忚繘琛岀洃瑙嗐傚緢涓漢錛屾垜绔熺劧鎶妔truts-config.xml鏂囦歡寮勪涪浜?jiǎn)锛屽洜姝ゅ嚭鐜颁簡(jiǎn)涓婇潰鐨勫紓甯稿Q屽簲璇ユ槸鍜孋VS鍚屾鏃朵笉灝忓績(jī)鍒犻櫎鐨勩?/P>
11銆佲淩esources not defined for Validator鈥?BR>榪欎釜鏄埄鐢╒alidator鎻掍歡鍋氶獙璇佹椂鍙兘鍑虹幇鐨勫紓甯革紝榪欐椂浣犺媯(gè)鏌alidation.xml鏂囦歡錛岀湅閲岄潰浣跨敤鐨勮祫婧愭槸鍚︾‘瀹炴湁瀹氫箟錛宖orm鐨勫悕縐版槸鍚︽紜紝絳夌瓑銆?/P>
涓婇潰榪欎簺鏄垜鍦ㄧ敤Struts鍋氶」鐩椂閬囧埌榪囩殑闂錛屽叾涓竴浜涙浘鍥扮粫鎴戜笉灝戞椂闂達(dá)紝鍏跺疄澶ч儴鍒嗛兘鏄嚜宸變笉緇嗗績(jī)閫犳垚鐨勩傚笇鏈涜繖綃囨枃绔犺兘瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍嬈㈣繋緇х畫(huà)琛ュ厖銆?/P>
Alt+Left:鍥為涓姝?/P>
Alt+Right:鍓嶈煩涓姝?/P>
Ctrl+Shift+T:鎵撳紑綾誨瀷
Ctrl+Shift+R:鎵撳紑璧勬簮
Ctrl+Q:鍥炲埌鏈鍚庝竴嬈$紪杈戠殑鍦版柟
Ctrl+Shift+G: 鍦╳orkspace涓悳绱㈠紩鐢?/P>
Ctrl+Alt+Down: 澶嶅埗楂樹(shù)寒鏄劇ず鐨勪竴琛屾垨澶氳
Alt+Up(Down):灝嗕竴琛屾垨鑰呭琛屽悜涓婃垨鑰呭悜涓嬬Щ鍔?BR>
Java 璇█鐨凜alendar(鏃ュ巻),Date(鏃ユ湡), 鍜孌ateFormat(鏃ユ湡鏍煎紡)緇勬垚浜?jiǎn)Java鏍囧噯鐨勪竴涓熀鏈絾鏄潪甯擱噸瑕佺殑閮ㄥ垎. 鏃ユ湡鏄晢涓氶昏緫璁$畻涓涓叧閿殑閮ㄥ垎. 鎵鏈夌殑寮鍙戣呴兘搴旇鑳藉璁$畻鏈潵鐨勬棩鏈? 瀹氬埗鏃ユ湡鐨勬樉紺烘牸寮? 騫跺皢鏂囨湰鏁版嵁瑙f瀽鎴愭棩鏈熷璞? 鎴戜滑鍐欎簡(jiǎn)涓ょ瘒鏂囩珷, 榪欐槸絎竴綃? 鎴戜滑灝嗗ぇ姒傜殑瀛︿範(fàn)鏃ユ湡, 鏃ユ湡鏍煎紡, 鏃ユ湡鐨勮В鏋愬拰鏃ユ湡鐨勮綆?
鎴戜滑灝嗚璁轟笅闈㈢殑綾?
1銆佸叿浣撶被(鍜屾娊璞$被鐩稿)java.util.Date
2銆佹娊璞$被java.text.DateFormat 鍜屽畠鐨勪竴涓叿浣撳瓙綾?java.text.SimpleDateFormat
3銆佹娊璞$被java.util.Calendar 鍜屽畠鐨勪竴涓叿浣撳瓙綾?java.util.GregorianCalendar
鍏蜂綋綾誨彲浠ヨ瀹炰緥鍖? 浣嗘槸鎶借薄綾誨嵈涓嶈兘. 浣犻鍏堝繀欏誨疄鐜版娊璞$被鐨勪竴涓叿浣撳瓙綾?
Date 綾諱粠Java 寮鍙戝寘(JDK) 1.0 灝卞紑濮嬭繘鍖? 褰撴椂瀹冨彧鍖呭惈浜?jiǎn)鍑犱釜鍙栧緱鎴栬呰緗竴涓棩鏈熸暟鎹殑鍚勪釜閮ㄥ垎鐨勬柟娉? 姣斿璇存湀, 鏃? 鍜屽勾. 榪欎簺鏂規(guī)硶鐜板湪閬埌浜?jiǎn)鎵硅瘎迤堜笖宸簿l忚杞Щ鍒頒簡(jiǎn)Calendar綾婚噷鍘諱簡(jiǎn), 鎴戜滑灝嗗湪鏈枃涓繘涓姝ヨ璁哄畠. 榪欑鏀硅繘鏃ㄥ湪鏇村ソ鐨勫鐞嗘棩鏈熸暟鎹殑鍥介檯鍖栨牸寮? 灝辮薄鍦↗DK 1.1涓竴鏍? Date 綾誨疄闄呬笂鍙槸涓涓寘瑁圭被, 瀹冨寘鍚殑鏄竴涓暱鏁村瀷鏁版嵁, 琛ㄧず鐨勬槸浠嶨MT(鏍兼灄灝兼不鏍囧噯鏃墮棿)1970騫? 1 鏈?1鏃?0:00:00榪欎竴鍒諱箣鍓嶆垨鑰呮槸涔嬪悗緇忓巻鐨勬縐掓暟.
涓銆佸垱寤轟竴涓棩鏈熷璞?
璁╂垜浠湅涓涓嬌鐢ㄧ郴緇熺殑褰撳墠鏃ユ湡鍜屾椂闂村垱寤轟竴涓棩鏈熷璞″茍榪斿洖涓涓暱鏁存暟鐨勭畝鍗曚緥瀛? 榪欎釜鏃墮棿閫氬父琚О涓篔ava 铏氭嫙鏈?JVM)涓繪満鐜鐨勭郴緇熸椂闂?
import java.util.Date;
public class DateExample1 {
public static void main(String[] args) {
// Get the system date/time
Date date = new Date();
System.out.println(date.getTime());
}
}
鍦ㄦ槦鏈熷叚, 2001騫?鏈?9鏃? 涓嬪崍澶х害鏄?:50鐨勬牱瀛? 涓婇潰鐨勪緥瀛愬湪緋葷粺杈撳嚭璁懼涓婃樉紺虹殑緇撴灉鏄?1001803809710. 鍦ㄨ繖涓緥瀛愪腑,鍊煎緱娉ㄦ剰鐨勬槸鎴戜滑浣跨敤浜?jiǎn)Date 鏋勯犲嚱鏁板垱寤轟竴涓棩鏈熷璞? 榪欎釜鏋勯犲嚱鏁版病鏈夋帴鍙椾換浣曞弬鏁? 鑰岃繖涓瀯閫犲嚱鏁板湪鍐呴儴浣跨敤浜?System.currentTimeMillis() 鏂規(guī)硶鏉ヤ粠緋葷粺鑾峰彇鏃ユ湡.
閭d箞, 鐜板湪鎴戜滑宸茬粡鐭ラ亾浜?jiǎn)濡備綍鑾峰彇浠?970騫?鏈?鏃ュ紑濮嬬粡鍘嗙殑姣鏁頒簡(jiǎn). 鎴戜滑濡備綍鎵嶈兘浠ヤ竴縐嶇敤鎴鋒槑鐧界殑鏍煎紡鏉ユ樉紺鴻繖涓棩鏈熷憿? 鍦ㄨ繖閲岀被 java.text.SimpleDateFormat 鍜屽畠鐨勬娊璞″熀綾?java.text.DateFormat 灝辨淳寰椾笂鐢ㄥ満浜?
浜屻佹棩鏈熸暟鎹殑瀹氬埗鏍煎紡
鍋囧鎴戜滑甯屾湜瀹氬埗鏃ユ湡鏁版嵁鐨勬牸寮? 姣旀柟鏄熸湡鍏?9鏈?29鏃?2001騫? 涓嬮潰鐨勪緥瀛愬睍紺轟簡(jiǎn)濡備綍瀹屾垚榪欎釜宸ヤ綔:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample2 {
public static void main(String[] args) {
SimpleDateFormat bartDateFormat =
new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
Date date = new Date();
System.out.println(bartDateFormat.format(date));
}
}
鍙閫氳繃鍚慡impleDateFormat 鐨勬瀯閫犲嚱鏁頒紶閫掓牸寮忓瓧絎︿覆"EEE-MMMM-dd-yyyy", 鎴戜滑灝辮兘澶熸寚鏄庤嚜宸辨兂瑕佺殑鏍煎紡. 浣犲簲璇ュ彲浠ョ湅瑙? 鏍煎紡瀛楃涓蹭腑鐨凙SCII 瀛楃鍛婅瘔鏍煎紡鍖栧嚱鏁頒笅闈㈡樉紺烘棩鏈熸暟鎹殑鍝竴涓儴鍒? EEEE鏄槦鏈? MMMM鏄湀, dd鏄棩, yyyy鏄勾. 瀛楃鐨勪釜鏁板喅瀹氫簡(jiǎn)鏃ユ湡鏄浣曟牸寮忓寲鐨?浼犻?EE-MM-dd-yy"浼?xì)鏄窘C?Sat-09-29-01. 璇峰療鐪婼un 鍏徃鐨?Web 绔欑偣鑾峰彇鏃ユ湡鏍煎紡鍖栭夐」鐨勫畬鏁寸殑鎸囩ず.
涓夈佸皢鏂囨湰鏁版嵁瑙f瀽鎴愭棩鏈熷璞?
鍋囪鎴戜滑鏈変竴涓枃鏈瓧絎︿覆鍖呭惈浜?jiǎn)涓涓牸寮忓寲浜?jiǎn)鐨勬棩鏈熷璞? 鑰屾垜浠笇鏈涜В鏋愯繖涓瓧絎︿覆騫朵粠鏂囨湰鏃ユ湡鏁版嵁鍒涘緩涓涓棩鏈熷璞? 鎴戜滑灝嗗啀嬈′互鏍煎紡鍖栧瓧絎︿覆"MM-dd-yyyy" 璋冪敤SimpleDateFormat綾? 浣嗘槸榪欎竴嬈? 鎴戜滑浣跨敤鏍煎紡鍖栬В鏋愯屼笉鏄敓鎴愪竴涓枃鏈棩鏈熸暟鎹? 鎴戜滑鐨勪緥瀛? 鏄劇ず鍦ㄤ笅闈? 灝嗚В鏋愭枃鏈瓧絎︿覆"9-29-2001"騫跺垱寤轟竴涓間負(fù)001736000000 鐨勬棩鏈熷璞?
渚嬪瓙紼嬪簭:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample3 {
public static void main(String[] args) {
// Create a date formatter that can parse dates of
// the form MM-dd-yyyy.
SimpleDateFormat bartDateFormat =
new SimpleDateFormat("MM-dd-yyyy");
// Create a string containing a text date to be parsed.
String dateStringToParse = "9-29-2001";
try {
// Parse the text version of the date.
// We have to perform the parse method in a
// try-catch construct in case dateStringToParse
// does not contain a date in the format we are expecting.
Date date = bartDateFormat.parse(dateStringToParse);
// Now send the parsed date as a long value
// to the system output.
System.out.println(date.getTime());
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
浜斻佷嬌鐢ㄦ爣鍑嗙殑鏃ユ湡鏍煎紡鍖栬繃紼?
鏃㈢劧鎴戜滑宸茬粡鍙互鐢熸垚鍜岃В鏋愬畾鍒剁殑鏃ユ湡鏍煎紡浜? 璁╂垜浠潵鐪嬩竴鐪嬪浣曚嬌鐢ㄥ唴寤虹殑鏍煎紡鍖栬繃紼? 鏂規(guī)硶 DateFormat.getDateTimeInstance() 璁╂垜浠緱浠ョ敤鍑犵涓嶅悓鐨勬柟娉曡幏寰楁爣鍑嗙殑鏃ユ湡鏍煎紡鍖栬繃紼? 鍦ㄤ笅闈㈢殑渚嬪瓙涓? 鎴戜滑鑾峰彇浜?jiǎn)鍥涗釜鍐呭缓鐨勬棩鏈熸牸寮忓寲杩嚱E? 瀹冧滑鍖呮嫭涓涓煭鐨? 涓瓑鐨? 闀跨殑, 鍜屽畬鏁寸殑鏃ユ湡鏍煎紡.
import java.text.DateFormat;
import java.util.Date;
public class DateExample4 {
public static void main(String[] args) {
Date date = new Date();
DateFormat shortDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.SHORT,
DateFormat.SHORT);
DateFormat mediumDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.MEDIUM,
DateFormat.MEDIUM);
DateFormat longDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.LONG,
DateFormat.LONG);
DateFormat fullDateFormat =
DateFormat.getDateTimeInstance(
DateFormat.FULL,
DateFormat.FULL);
System.out.println(shortDateFormat.format(date));
System.out.println(mediumDateFormat.format(date));
System.out.println(longDateFormat.format(date));
System.out.println(fullDateFormat.format(date));
}
}
娉ㄦ剰鎴戜滑鍦ㄥ getDateTimeInstance鐨勬瘡嬈¤皟鐢ㄤ腑閮戒紶閫掍簡(jiǎn)涓や釜鍊? 絎竴涓弬鏁版槸鏃ユ湡椋庢牸, 鑰岀浜屼釜鍙傛暟鏄椂闂撮鏍? 瀹冧滑閮芥槸鍩烘湰鏁版嵁綾誨瀷int(鏁村瀷). 鑰冭檻鍒板彲璇繪? 鎴戜滑浣跨敤浜?jiǎn)DateFormat 綾繪彁渚涚殑甯擱噺: SHORT, MEDIUM, LONG, 鍜?FULL. 瑕佺煡閬撹幏鍙栨椂闂村拰鏃ユ湡鏍煎紡鍖栬繃紼嬬殑鏇村鐨勬柟娉曞拰閫夐」, 璇風(fēng)湅Sun 鍏徃Web 绔欑偣涓婄殑瑙i噴.
榪愯鎴戜滑鐨勪緥瀛愮▼搴忕殑鏃跺? 瀹冨皢鍚戞爣鍑嗚緭鍑?guó)櫘惧杈撳囖Z笅闈㈢殑鍐呭:
9/29/01 8:44 PM
Sep 29, 2001 8:44:45 PM
September 29, 2001 8:44:45 PM EDT
Saturday, September 29, 2001 8:44:45 PM EDT
鍏丆alendar 綾?
鎴戜滑鐜板湪宸茬粡鑳藉鏍煎紡鍖栧茍鍒涘緩涓涓棩鏈熷璞′簡(jiǎn), 浣嗘槸鎴戜滑濡備綍鎵嶈兘璁劇疆鍜岃幏鍙栨棩鏈熸暟鎹殑鐗瑰畾閮ㄥ垎鍛? 姣斿璇村皬鏃? 鏃? 鎴栬呭垎閽? 鎴戜滑鍙堝浣曞湪鏃ユ湡鐨勮繖浜涢儴鍒嗗姞涓婃垨鑰呭噺鍘誨煎憿? 絳旀鏄嬌鐢–alendar 綾? 灝卞鎴戜滑鍓嶉潰鎻愬埌鐨勯偅鏍? Calendar 綾諱腑鐨勬柟娉曟浛浠d簡(jiǎn)Date 綾諱腑琚漢鍞鵑獋鐨勬柟娉?
鍋囪浣犳兂瑕佽緗? 鑾峰彇, 鍜屾搷綰典竴涓棩鏈熷璞$殑鍚勪釜閮ㄥ垎, 姣旀柟涓涓湀鐨勪竴澶╂垨鑰呮槸涓涓槦鏈熺殑涓澶? 涓轟簡(jiǎn)婕旂ず榪欎釜榪囩▼, 鎴戜滑灝嗕嬌鐢ㄥ叿浣撶殑瀛愮被 java.util.GregorianCalendar. 鑰冭檻涓嬮潰鐨勪緥瀛? 瀹冭綆楀緱鍒頒笅闈㈢殑絎崄涓槦鏈熶簲鏄?3鍙?
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.DateFormat;
public class DateExample5 {
public static void main(String[] args) {
DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.FULL);
// Create our Gregorian Calendar.
GregorianCalendar cal = new GregorianCalendar();
// Set the date and time of our calendar
// to the system&s date and time
cal.setTime(new Date());
System.out.println("System Date: " +
dateFormat.format(cal.getTime()));
// Set the day of week to FRIDAY
cal.set(GregorianCalendar.DAY_OF_WEEK,
GregorianCalendar.FRIDAY);
System.out.println("After Setting Day of Week to Friday: " +
dateFormat.format(cal.getTime()));
int friday13Counter = 0;
while (friday13Counter <= 10) {
// Go to the next Friday by adding 7 days.
cal.add(GregorianCalendar.DAY_OF_MONTH, 7);
// If the day of month is 13 we have
// another Friday the 13th.
if (cal.get(GregorianCalendar.DAY_OF_MONTH) == 13) {
friday13Counter++;
System.out.println(dateFormat.format(cal.getTime()));
}
}
}
}
鍦ㄨ繖涓緥瀛愪腑鎴戜滑浣滀簡(jiǎn)鏈夎叮鐨勫嚱鏁拌皟鐢?
cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);
鍜?
cal.add(GregorianCalendar.DAY_OF_MONTH, 7);
set 鏂規(guī)硶鑳藉璁╂垜浠氳繃綆鍗曠殑璁劇疆鏄熸湡涓殑鍝竴澶╄繖涓煙鏉ュ皢鎴戜滑鐨勬椂闂磋皟鏁翠負(fù)鏄熸湡浜? 娉ㄦ剰鍒拌繖閲屾垜浠嬌鐢ㄤ簡(jiǎn)甯擱噺 DAY_OF_WEEK 鍜?FRIDAY鏉ュ寮轟唬鐮佺殑鍙鎬? add 鏂規(guī)硶璁╂垜浠兘澶熷湪鏃ユ湡涓婂姞涓婃暟鍊? 娑﹀勾鐨勬墍鏈夊鏉傜殑璁$畻閮界敱榪欎釜鏂規(guī)硶鑷姩澶勭悊.
鎴戜滑榪欎釜渚嬪瓙鐨勮緭鍑虹粨鏋滄槸:
System Date: Saturday, September 29, 2001
褰撴垜浠皢瀹冭緗垚鏄熸湡浜斾互鍚庡氨鎴愪簡(jiǎn): Friday, September 28, 2001
Friday, September 13, 2002
Friday, December 13, 2002
Friday, June 13, 2003
Friday, February 13, 2004
Friday, August 13, 2004
Friday, May 13, 2005
Friday, January 13, 2006
Friday, October 13, 2006
Friday, April 13, 2007
Friday, July 13, 2007
Friday, June 13, 2008
涓冦佹椂闂存帉鎻″湪浣犵殑鎵嬮噷
鏈変簡(jiǎn)榪欎簺Date 鍜孋alendar 綾葷殑渚嬪瓙, 浣犲簲璇ヨ兘澶熶嬌鐢?java.util.Date, java.text.SimpleDateFormat, 鍜?java.util.GregorianCalendar 鍒涘緩璁稿鏂規(guī)硶浜?
鍦ㄤ笅闈㈢殑鏂囩珷涓? 鎴戜滑灝嗚璁烘洿楂樼駭鐨凞ate 鍜?Calendar 綾葷殑浣跨敤鎶宸? 鍖呮嫭鏃跺尯鍜屽浗闄呭寲鐨勬牸寮? 鎴戜滑榪樹(shù)細(xì)鑰冨療涓や釜鏃ユ湡綾?java.sql.Date 鍜?java.util.Date 涔嬮棿鐨勫尯鍒?
鍐欐枃浠?BR>BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("outfilename")));
涓嶇浣犲啓鍊掔鐩橈紝鍐欏埌緗戠粶錛屾垨鑰呭啓鍒板睆騫曪紝閮芥槸OuputStream銆?BR>