I was wondering why sometimes in PF code, we do something like this:
Code: Select all
ValueExpression selectionVE = this.getValueExpression("selection");
if(selectionVE != null) {
selectionVE.setValue(context.getELContext(), this.getLocalSelection());
this.setSelection(null);
}
The behavior is already strange to me, it use MapElResolver to set value of selection... I just want to make there is a good reason of using ValueExpression.setValue?java.lang.NullPointerException:
javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2479)
javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2336)
com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.put(CompositeComponentAttributesELResolver.java:415)
com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.put(CompositeComponentAttributesELResolver.java:331)
javax.el.MapELResolver.setValue(MapELResolver.java:84)
com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255)
com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281)
org.apache.el.parser.AstValue.setValue(AstValue.java:202)
org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:257)
com.sun.faces.facelets.el.ContextualCompositeValueExpression.setValue(ContextualCompositeValueExpression.java:172)
com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)
org.primefaces.component.datatable.DataTable.processUpdates(DataTable.java:780)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1291)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1291)
javax.faces.component.UIForm.processUpdates(UIForm.java:281)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1291)
org.primefaces.component.panel.Panel.processUpdates(Panel.java:306)
Thanks for your help