是否可以在同一页面上的回发过程中保持请求作用域的 bean 处于活动状态?
一般的问题是,bean 在请求结束时被丢弃,并在每次表单提交时重新创建,例如动态操作背后的布尔值disabled
, readonly
and rendered
重置为默认值并导致表单不再按预期工作。
我假设会话范围是not一个选项,否则这个问题就没有意义。
你可以使用钺<t:saveState> http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_saveState.html。将以下行添加到页面的某处:
<t:saveState value="#{bean}" />
丰富的面孔<a4j:keepAlive> http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/a4j_keepAlive.html也做同样的事情:
<a4j:keepAlive beanName="#{bean}" />
或者如果有空间,至少升级到 JSF 2.x 并将 bean 放入view scope:
@ManagedBean
@ViewScoped
public class Bean implements Serializable {
// ...
}
无论采用哪种方式,当您回发到同一视图并继续返回时,都会存在相同的 beannull
or void
从行动方法来看。
也可以看看:
- 如何选择合适的bean范围? https://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope
- 托管 bean 中的 View 和 Request 范围之间的区别 https://stackoverflow.com/questions/6025998/difference-between-view-and-request-scope-in-managed-beans/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)