最近使用的过程中,有点搞不懂,表单域跟属性到底是怎么个关系,因为有时候可以,有时候又不行。有点小郁闷。
使用新东西的时候或多或少会出现这样那样的问题,这导致很多人不愿意更换原来的框架,一换又要学一个大堆东西,处理一大堆异常。但是我们这些做开发的,不学习使用新的 东西,就会被淘汰。这个行业的悲哀啊,当初也不知道怎么选择了这个行业。
以上是题外话。
表单映射,在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来运行。
这个是今天的一大收获。