blogjava's web log ...
?
今天研究了一下JpetStore源代碼 ,發現它的開發strust模式和我們以往開發的模式完全不同,所有的strust類都繼承org.apache.struts.beanaction.BaseBean
仔細研究BeanAction類,發現它其實是一個通用類,利用反射原理,根據URL來決定調用formbean的哪個方法!
一個簡單的例子
說明|:Struts-config.xml的配置里有3種映射方式,來告訴BeanAction把控制轉到哪個form bean對象的哪個方法來處理。<action name="testBean" path="/test/saveUser" type="org.apache.struts.beanaction.BeanAction">????? <forward name="success" path="/success.html" />??? </action>此種方式表示,控制將被轉發到"testBean"這個form bean對象 的"savaUser"方法(行為)來處理。方法名取"path"參數的以"/"分隔的最后一部分。parameter="*"
此種方式表示,form bean上沒有任何方法被調用。如果存在"name"屬性,則struts把表單參數等數據填充到form bean對象后,把控制轉發到"success"。否則,如果name為空,則直接轉發控制到"success"。這就相當于struts內置的org.apache.struts.actions.ForwardAction的功能前臺調用