我创建了一个自定义控件并将其添加到我的标记库中。
此控件显示两个selectonemenu,其中第二个取决于第一个,并通过ajax从数据库中的数据更新。
目前,我使用视图范围bean来选择第二个数据。但我对这个解决方案并不满意,因为有一个bean可能有多个实例。
在asp.net中有一个控制状态来保存控制相关数据。有类似的东西吗?
或者,我可以使用带有转换器的请求范围bean,该转换器在选择时再次从数据库中检索数据。
答案 0 :(得分: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中跨回发来保持组件属性的示例。只需扩展以下两种方法即可。