1. 程式人生 > >Action接收引數的3種方式(屬性,域模型,模型驅動,struts2.1.8)

Action接收引數的3種方式(屬性,域模型,模型驅動,struts2.1.8)

常用第一種跟第二種

1.Action屬性傳引數:

建議:屬性應該與引數名相同。

在一個繼承ActionSupport類中新增接收引數的屬性,並生成其get() set()方法,在請求中附帶引數和對應的值,在struts2幫我們new這個類的時候,會自動呼叫get,set方法給屬性填值。如果屬性也引數名不同,那麼生成的get,set方法將不能為屬性填值。總之,setXXX()中的XXX指的是引數名。

2.Domain modal(域模型)接收引數:

對於接收到的引數,會放到一個數據模型,以便於插入到資料庫。當Action接收的引數太多,用第一種的方式接收引數,感覺不舒服。在URL中Modal.property=value來為資料模型物件填充資料,這個方式實際上是呼叫了資料模型的setXXX()方法。在Action中我們並不需要new資料模型物件,struts2幫我們做了new這個過程。

實際中,傳人蔘數的個數跟資料模型屬性的個數並不相同。這是就會用到DTO(資料轉換物件),也有人叫VO,DO,用這個DTO接收資料後,然後填充到資料模型中。

Modal driven接收引數:

要使用ModalDriven時,繼承ActionSupport的同時還需要實現ModalDriven介面,這個介面有一個T getModal()方法。在這裡,struts2將不再自動new資料模型物件,要手動new。引數還是應該和資料模型的屬性相同。這種方式不常用。