最近使用的過程中,有點搞不懂,表單域跟屬性到底是怎么個關系,因為有時候可以,有時候又不行。有點小郁悶。
使用新東西的時候或多或少會出現這樣那樣的問題,這導致很多人不愿意更換原來的框架,一換又要學一個大堆東西,處理一大堆異常。但是我們這些做開發的,不學習使用新的 東西,就會被淘汰。這個行業的悲哀啊,當初也不知道怎么選擇了這個行業。
以上是題外話。
表單映射,在2里面有兩種方式,一個事modelDriver,直接映射到model里面。
另一種方式就是通過屬性來影射,通過getter和setter方法來獲取和設置值。
現在出現問題的在第二種情況,設值后,傳到頁面,頁面沒有得到值,這個不知道什么緣故,感覺有可能是頁面轉發的問題。這個還要好好看看資料研究一下。
:)
//==========================================================================
2009-11-17
好久以前的問題了,今天終于有了答案,原來都是ValueStack惹的。其實也怪自己,一直沒有空把struts2的原理好好的看看,還以為跟以前的東西一樣呢。
問題是這樣的,在action里定義了屬性之后,數據都是存在ValueStack里面的。如果你直接使用tag取的話就沒有問題。但是你想通過java代碼,用request取的話,這樣是取不出來的。
今天終于發現了這個問題的原因。
這些屬性可以通過request取,但是首先要去的ValueStack,然后從ValueStack里面把這個值取出來。
如:
ValueStack vs = request.getAttribute(struts.valueStack);
然后根據屬性名稱,從vs中獲取這個對象值。
vs.find("value");
這樣就可以把數據取出來通過java代碼來操作了。否則只能使用struts2自帶的tag來運行。
這個是今天的一大收獲。