2

我创建了一个自定义控件并将其添加到我的标签库中。

此控件显示两个 selectonemenu,其中第二个依赖于第一个,并通过 ajax 从数据库中的数据进行更新。

目前,我使用视图范围 bean 来选择第二个的数据。但我对这个解决方案并不满意,因为有一个 bean 可能用于多个实例。

在asp.net中有一个控件状态来保存控件相关数据。有没有类似的东西?

或者,我可以将请求范围的 bean 与转换器一起使用,该转换器在选择时再次从数据库中检索数据。

4

1 回答 1

1

Component State在谈论扩展类时调用等效项UIComponent

@Override
public Object saveState(FacesContext context) {
    Object values[] = new Object[2];
    values[0] = super.saveState(context);
    values[1] = label;
    return ((Object) (values));
}

@Override
public void restoreState(FacesContext context, Object state) {
    Object values[] = (Object[])state;
    super.restoreState(context, values[0]);
    label = (String)values[1];
}

以上是如何在 UIComponent 中跨回发持久化组件属性的示例。简单扩展以下两种方法。

于 2012-10-03T17:57:42.593 回答