Ho alcuni valori nel mio database che possono essere nulli se non sono già stati immessi.Uso di Thymeleaf quando il valore è null
Ma quando uso Thymeleaf nel mio html, dà un errore durante l'analisi di valori nulli.
C'è un modo per gestire questo?
Ho alcuni valori nel mio database che possono essere nulli se non sono già stati immessi.Uso di Thymeleaf quando il valore è null
Ma quando uso Thymeleaf nel mio html, dà un errore durante l'analisi di valori nulli.
C'è un modo per gestire questo?
Certo che c'è. Ad esempio, è possibile utilizzare lo conditional expressions. Per esempio:
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty} : 'null value!'">someValue</span>
Si può anche omettere l'espressione "altro":
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty}">someValue</span>
Si può anche dare un'occhiata al Elvis operator per visualizzare i valori predefiniti.
che hai fatto due volte la verifica quando si crea
${someObject.someProperty != null} ? ${someObject.someProperty}
si dovrebbe fare pulito e semplice, come di seguito.
<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td>
Il modo più breve è utilizzare '?' operatore. Se si dispone di entità User con un'entità Indirizzo incorporato per i campi di accesso di soggetti Indirizzo e stamparle se l'indirizzo non è nullo, altrimenti qui sarà una colonna vuota:
<td th:text="${user?.address?.city}"></td>
questo è il migliore ans –
L'operatore '? .' è chiamato operatore di" navigazione sicura ", per i [documenti di linguaggio di espressione di primavera] (https://docs.spring.io/spring/docs/4.2.x/spring -Framework-reference/html/expressions.html # espressioni-operatore-safe-navigazione). – rdguam
<p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p>
È possibile utilizzare 'th: se 'insieme a' th: text '
<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span>
'Modifica:' Aggiunto il '$ {...}' per la condizione if se l'avete perso. +1 per l'espressione ternaria in 'th: text'. – Lucky
Potresti spiegare perché ci sono più $ {...} necessari? Cosa succede se voglio prefisso entrambe le alternative con ad es. 'Foo:'. Dovrei specificarlo due volte all'interno delle alternative? – lilalinux
La tua risposta dovrebbe essere ammessa come soluzione. Grazie. – russellhoff