首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >richfaces keepAlive不工作

richfaces keepAlive不工作
EN

Stack Overflow用户
提问于 2010-02-15 23:34:05
回答 2查看 2.8K关注 0票数 1

我有一个mediaOutput标记,在它的createContent属性中,它要求支持bean处于某种状态。在init方法中填充的值列表必须可用。

因此,我为整个支持bean添加了一个keepAlive标记。我现在确实看到了backingBean,而不是一些(richfaces)代理bean,但是填充的列表再次为空。

如何才能做到这一点?

我检查了init方法是否已被调用,列表是否已在init方法中填充。

代码语言:javascript
复制
<a4j:keepAlive beanName="myBean" />
<a4j:mediaOutput createContent="#{myBean.writeChart}" ... />

支持bean

代码语言:javascript
复制
public class MyBean implements Serializable {

public List list;

public void init(ActionEvent event) {
   // call some resource to fill the list
   list = service.getItems();
}

public void writeChart(final OutputStream out, final Object data) throws IOException {
   // list is null
}

// getters & setters
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-16 16:35:26

声明您的bean在session作用域中。

如果bean中有其他仅限请求的信息,那么只需创建一个新的请求作用域的bean,并将所有其他内容移动到那里。它是非常清晰的。

票数 2
EN

Stack Overflow用户

发布于 2010-06-17 20:38:39

这不是问题。MediaOutput组件将创建createContent参数中给定的bean。"bean“前缀是一个令人不安的前缀--这只是一个简单的java类,它包含了画图(...)方法。您必须在这个简单的" bean“中获取keepalived bean(例如支持bean)作为ManagedProperty,它也可以包含keepalived信息。

示例:

带有@ManagedBean(name = "ABCBean")和@RequestScoped注释的abc.xhtml和ABC.java。您可以使用ABCBean作为abc.xhtml的支持Bean,但不能在mediaOutput.createContent参数中使用!但是您可以使用@ManagedBean(name="MediaBean")注释创建MediaBean.java,它有一个@ManagedProperty,用于获取MediaBean中的ABCBean实例。并且ABCBean实例是保持活动的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2266973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档