自己也原創(chuàng)一下
項目做了一段時間了,該做的都做了,可以休整幾天了。利用這幾天,看了看自己做的項目,發(fā)現(xiàn)一個問題,從頭到尾都沒有用 actionForm。呵呵。
原因了也是因為以前一個從網(wǎng)上查到的讓大家都很頭疼的經(jīng)典的問題,就是struts 的 actionForm 執(zhí)行 validate 返回原來頁面后原來的值無法保存的問題。今天寫了個測試試了一下,發(fā)現(xiàn) struts 并沒有變什么魔術(shù)。一切都是這么容易,這個問題根本不是 struts 的問題了。
關(guān)鍵的地方在于, 頁面提交后 struts 會將表單的值填進 actionForm,然后執(zhí)行 validate 方法,不通過就返回源頁面。 這時 表單對象是存放在 request 對象里的,與我們平時用的 request.setAttribute("xx")沒有任何區(qū)別,返回原頁面后這個對象當然還在 ,所以頁面可以用 request.getAttribute("xx") (“xx”是struts action 映射時的 name,如果配了 attribute 就是 attribute了), 得到之前填寫的值。
我們的工程用 velocity ,更容易了,直接 $xx.fieldname ,搞定。
所以,以后還是這樣用吧。