bean的初始化问题?

hpowersoft 2008-06-02
把bean的scope设成session的时候,bean初始化一次,即在jsf的RENDER_RESPONSE(生命周期);
把bean的scope设成request的时候,bean初始化两次,分别在jsf的RENDER_RESPONSE和APPLY_REQUEST_VALUES;

如果使用datatable,其中的数据列是从数据库中取的列表,在bean初始化的时候取出数据库中的数据列表,如果bean的scope设置成request的时候,岂不是在一个页面中要从数据库中取两次数据,不知道各位是怎么解决这个问题的?
rockjava 2008-06-02
怎么会初始化2次呢?
kimmking 2008-06-02
RENDER_RESPONSE 在APPLY_REQUEST_VALUES之后的

整个流程中只有一个bean

如果你的顺序是反的

说明 bean不是在同一个request
应该是两个不同的请求
chxkyy 2008-06-02
怎么会呢?
Bean的scope设成request
在一次request中Bean的构造函数只会被调用一次。
hpowersoft 2008-06-05
在一个request中bean的构造函数会被调用两次
一次是form初始化的时候;
一次是form提交的时候,不信可以试一下;
kimmking 2008-06-05
hpowersoft 写道
在一个request中bean的构造函数会被调用两次
一次是form初始化的时候;
一次是form提交的时候,不信可以试一下;


晕死, 第一页面输出和post后 对服务器来说是两个request不是一个
richmond 2008-06-05
嗯 kimmking说的没错的

但是如果把bean scope设成了request之后,那么岂不是每次提交DataTable都得再初始化一次?

除了设成session之外还有什么解决办法呢?
heavens 2008-06-16
用myfaces的<t:saveState />标签保存bean的状态就可以了
hpowersoft 2008-06-20
heavens 正解,已经解决了
Global site tag (gtag.js) - Google Analytics