今天開發(fā)一個小項目,使用了s2sh組合感覺有點小爽,免去了很多配置,之前使用struts1+sh組合action也需要進(jìn)行bean配置比如
<action path="/login" type="org.springframework.web.struts.DelegatingActionProxy"
name=""
scope=""
validate=""
>
<forward name="" path=""/>
</action>
里面的org.springframework.web.struts.DelegatingActionProxy必寫。
但是使用s2sh組合,action可以進(jìn)行注解配置,省去了form以及action的xml配置感覺很簡潔,并且如果使用struts.xml文件進(jìn)行action配置的話,就沒有類似于org.springframework.web.struts.DelegatingActionProxy這種寫法,它里面的配置一般會有class屬性,該屬性就是創(chuàng)建Action實例的實現(xiàn)類,但是使用struts2提供的spring插件整合后,該class屬性可以定義為spring容器中的Bean id,這里即和struts1中的org.springframework.web.struts.DelegatingActionProxy配置相對應(yīng),指向的action只是一個傀儡,其實指的是spring容器里面的Action實例,這個才是真正處理用戶請求的控制器。這是其一,第二:頁面取值的時候不能類似于struts1那樣直接指定${list}4個范圍內(nèi)會依次自動查找,struts2使用#符號必須指定范圍內(nèi)進(jìn)行取值比如:#session.list這種形式取出。如果list存入session范圍內(nèi)并使用#list這種形式取值,那么它不會在4個范圍內(nèi)自動查找也就找不到值,必須指定一個范圍page、request、session、application其中之一才能取出值。第三:使用HibernateTemplate時候使用find("hql")方法查詢,默認(rèn)使用的是hql語句,而且可以查詢視圖今天也才了解到視圖也不過是拼湊的sql語句而已,那么里面的表字段使用find("hql")方法進(jìn)行查詢的時候仍然要使用類+類名.屬性進(jìn)行查詢,同時又溫習(xí)了多表關(guān)聯(lián)查詢的語句寫法,如果是關(guān)聯(lián)N個表查詢,那么where子句必須至少有N-1個條件,這樣查詢的記錄才不會有重復(fù),這是定律。。。今天就只加了一個條件結(jié)果一大堆重復(fù)記錄。。。牢記!總之發(fā)現(xiàn)使用s2sh組合,代碼更加簡潔更加漂亮,總讓人有種不斷優(yōu)化想寫出完美代碼的沖動。。。^_^
posted on 2010-09-07 23:45
朔望魔刃 閱讀(381)
評論(0) 編輯 收藏