风人园

弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……

struts2 表单属性映射的问题

最近使用的过程中,有点搞不懂,表单域跟属性到底是怎么个关系,因为有时候可以,有时候又不行。有点小郁闷。

使用新东西的时候或多或少会出现这样那样的问题,这导致很多人不愿意更换原来的框架,一换又要学一个大堆东西,处理一大堆异常。但是我们这些做开发的,不学习使用新的 东西,就会被淘汰。这个行业的悲哀啊,当初也不知道怎么选择了这个行业。

以上是题外话。

表单映射,在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来运行。

这个是今天的一大收获。

posted on 2009-08-04 15:52 风人园 阅读(1086) 评论(0)  编辑  收藏 所属分类: Struts2


只有注册用户登录后才能发表评论。


网站导航: