2013-03-21 12 views
5

Sto usando Spring EL per estrarre i valori da un insieme piuttosto complesso di mappe ed elenchi nidificati. Voglio essere in grado di usare un'espressione comeSpring EL: navigazione sicura con accesso alla mappa

[9]['firstSubKey']['secondSubKey'] 

salvo che [9]['firstSubKey'] potrebbe essere nullo. Io non riesco a capire come utilizzare la navigazione sicura in modo corretto: ho provato

[9]['firstSubKey']?['secondSubKey'] 

e

[9]['firstSubKey']?.['secondSubKey'] 

e sia tornato un qualche tipo di errore di analisi. Alla fine ho potuto farlo funzionare usando

[9]['firstSubKey']?.get('secondSubKey') 

ma che sembra di cattivo gusto. C'è un modo migliore o è solo una caratteristica che SpringEL non ha? Sto usando Spring 3.1.3.

In relazione, se si dispone di un elenco/array di un numero sconosciuto di elementi, esiste un modo per verificarlo in modo sicuro? IE se ho una matrice di 4 elementi, voglio [5] per restituire null. Così com'è, lancia un SpelEvaluationException.

risposta

1

Non sono riuscito a trovare una soluzione migliore per il tuo; solo

"['0']['a'] != null ? ['0']['a']['b'] : null"

e

"size() > 5 ? [5] : null"