理解JSF组件类的生命周期

时间:2015-08-12 04:18:52

标签: jsf jsf-2

组件的生命周期是什么?遍历UIInput来源我已经注意到有value的本地字段,它本身就是组件的价值。我还注意到,在处理完所有转换和验证后,我们将新值与组件的旧值进行比较,以及它们是否具有不同的fire valueChange事件。实际上,这是接管quing事件的代码片段:

if (isValid()) {
     Object previous = getValue();
     setValue(newValue);
     setSubmittedValue(null);
     if (compareValues(previous, newValue)) {
         queueEvent(new ValueChangeEvent(this, previous, newValue)); // <-----
     }
}

但是如果组件在任何请求之后被杀死,我们只需要{i}}时间来发送请求。因此,我假设组件的生命周期与绑定到该属性的组件的生命周期相同。但我找不到任何文件保证......

1 个答案:

答案 0 :(得分:1)

组件实例是请求范围的。只有委派给UIComponent#getStateHelper()的组件属性才是视图范围。即它们保存在JSF视图状态中。其中包括getValue()委托的ValueHolder#getLocalValue()

@Override
public Object getValue() {
    return isLocalValueSet() ? getLocalValue() : super.getValue();
}

仅在无状态视图(即具有<f:view transient="true">的页面)上,您所描述的行为&#34;我们只需获得ValueChangeEvent时间即可发送请求&#34; 确实会发生。

另见: