自己也原创一下
项目做了一段时间了,该做的都做了,可以休整几天了。利用这几天,看了看自己做的项目,发现一个问题,从头到尾都没有用 actionForm。呵呵。
原因了也是因为以前一个从网上查到的让大家都很头疼的经典的问题,就是struts 的 actionForm 执行 validate 返回原来页面后原来的值无法保存的问题。今天写了个测试试了一下,发现 struts 并没有变什么魔术。一切都是这么容易,这个问题根本不是 struts 的问题了。
关键的地方在于, 页面提交后 struts 会将表单的值填进 actionForm,然后执行 validate 方法,不通过就返回源页面。 这时 表单对象是存放在 request 对象里的,与我们平时用的 request.setAttribute("xx")没有任何区别,返回原页面后这个对象当然还在 ,所以页面可以用 request.getAttribute("xx") (“xx”是struts action 映射时的 name,如果配了 attribute 就是 attribute了), 得到之前填写的值。
我们的工程用 velocity ,更容易了,直接 $xx.fieldname ,搞定。
所以,以后还是这样用吧。