按照理解web里的所有訪問都通過控制器來輸導(dǎo),那也是沒有問題的,因?yàn)樽疃嗍墙▊€(gè)ForwardAction,沒有產(chǎn)生真正的類那倒無所謂,但數(shù)據(jù)的操作通常都會(huì)有四,五個(gè)操作,如果也分成許多的類出來,對單個(gè)是很清晰,但多了難免搞不清。而且操作對象多的話,那就成倍增長。
本來以前是想著將有相似的操作合并到一個(gè)控制器里,比如,增加,修改操作,顯示,刪除。那樣起碼減少到一半的類。這兩天看到兩個(gè)例子,都是將對一個(gè)對象的所有操作都封到一個(gè)類里邊。感覺那樣很簡潔,數(shù)據(jù)庫操作都是調(diào)用操作,那樣就算所有操作集合到一個(gè)類也不會(huì)感覺到有多長。
我對兩種方法說明一下:
第一種:是在每個(gè)action配置里增加parameter,在那里做判斷是什么操作。在action里獲得parameter時(shí)行判斷,進(jìn)行相應(yīng)操作,這里用的是傳execute里的所有參數(shù)進(jìn)行處理。
第二種:在每個(gè)表單里增加action屬性,到時(shí)再判斷,action里采用if-else判斷。
第一種方法配置的action還是跟以前一樣多,第二種比較簡潔。以后可以試著采用這種方式,以減少配置與類。其實(shí)隱隱約約還是感覺到有些不明了,還是測試過再下定論吧。
另補(bǔ):
hibernate的saveOrUpdate可以處理添加得更新兩種操作,雖然很好用。
今天使用出錯(cuò)了,用了BeanUtils,PropertyUtils復(fù)制屬性,后來發(fā)現(xiàn)應(yīng)該注意以下
BeanUtils是復(fù)制屬性返回為字符串的,PropertyUtils復(fù)制返回為對象。(也不知對不對)
因?yàn)楦碌锰砑佣加昧送籪orm,所以有id,這時(shí)如果id類型為int ,而又用了saveOrUpdate,結(jié)果就出錯(cuò)。
用回Integer就不會(huì)有這回事,
用了PropertyUtils,saveOrUpdate就要考慮form里不能出現(xiàn)原始類型數(shù)據(jù),因?yàn)槟切┎荒芩銓ο蟆?BR>最好是用BeanUtils,別用saveOrUpdate,除非有特殊需要,就少了那些限制。
--說得沒什么條理性,慢慢來^_^