When navigating a chain sometimes properties or methods will evaluate to null, causing subsequent properties or method calls to fail with NullPointerException
s. Most of the time this behaviour is correct (as it is
with Java), but sometimes you want to be able to dynamically substitute another object in place of null
. The NullHandler
interface allows you to specify on a class-by-class basis how nulls are
handled within OGNL expressions. Implementing this interface allows you to intercept when methods return null
and properties evaluate to null
and allow you to substitute a new value. Since you are
given the source of the method or property a really clever implementor might write the property back to the object so that subsequent invocations do not return or evaluate to null
.
public interface NullHandler { public Object nullMethodResult(Map context, Object target, String methodName, List args); public Object nullPropertyValue(Map context, Object target, Object property); }
NullHandler
implementors are registered with OGNL using the OgnlRuntime.setNullHandler()
method.