I have the following in a jsp page, where bar is a field (which can be null) of foo
<c:set var="fieldAccessorsSuppliedToComponent" value="foo.bar.name" />
//omissions
<spring:eval expression="${fieldAccessorsSuppliedToComponent}" var="currentField"/>
I have no control over what fieldAccessorsSuppliedToComponent
is going to be, foo.bar1.bar2.bar3.address.city
is possible and any step could be null. I have currently solved it by looping over 'fields' ->
<c:set var="fields" value="${fn:split(column, '.')}" />
and testing each step for null. Its a mess. Can it be done with something inbuilt in SPeL
What is the simplest way to make it work with nulls? Silently failing and not setting currentField is ideal.
where bar is a field (which can be null) of foo
The Null-safer Navigator operator comes to the rescue:
value="foo.bar?.name"
See more info in the documentation: https://docs.spring.io/spring/docs/5.2.4.RELEASE/spring-framework-reference/core.html#expressions-operator-safe-navigation