繁体   English   中英

JSF 1.2:如何在同一视图的回发中保持请求范围的托管 bean 活动?

[英]JSF 1.2: How to keep request scoped managed bean alive across postbacks on same view?

是否可以在同一页面上的回发中保持请求范围的 bean 处于活动状态?

一般的问题是,由于 bean 在请求结束时被丢弃并在每个表单提交时重新创建,例如动态操作disabledreadonlyrendered后面的布尔值被重置为默认值,并导致 forms 不再按预期工作。

我假设 session scope不是一个选项,否则这个问题毫无意义。

您可以使用Tomahawk <t:saveState>来完成。 将以下行添加到页面的某处:

<t:saveState value="#{bean}" />

RichFaces <a4j:keepAlive>也一样:

<a4j:keepAlive beanName="#{bean}" />

或者如果有空间,至少升级到 JSF 2.x 并将 bean 放在视图scope 中:

@ManagedBean
@ViewScoped
public class Bean implements Serializable {
    // ...
}

无论采用哪种方式,当您回发到同一个视图并继续从操作方法返回nullvoid时,都会出现同一个 bean。

也可以看看:

不是真的,除非您将 Bean 存储在某处,例如应用程序 scope 中的 Map,以便稍后检索它。

为什么不将其设为 Session 范围? 这就是 Session scope 的用途,因此同一个 Session 期间的多个请求可以达到同一个 Z9ED39E28EA9312EFA573E

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM