thymleaf 使用三目運算多個條件判斷的寫法

前言:最近做的項目中使用到了thymleaf ,因爲不是特別會,所以走了很多彎路,在此總結一下。

做類似 “男女” 下拉選擇的時候,一般使用 0、1 來進行標識,一般這樣寫:

<select class="form-control" id="isRecommend" th:value="${paper.isRecommend=='0'?'推薦':'不推薦'}">

這樣的只有兩個狀態標識的,可以這樣寫,但是多個條件的話,就會報錯,例如:

<select class="form-control" id="apType" th:value="${activePic.apType=='1'?'首頁3主圖':'2'?'權威活動圖':'精彩活動圖'}">

報錯信息:

Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "activePic.apType=='1'?'首頁3主圖':'2'?'權威活動圖':'精彩活動圖'" (template: "system/home/edit" - line 15, col 58)
	at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)
	at org.attoparser.MarkupParser.parse(MarkupParser.java:257)
	at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)

Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Boolean] for value '2'; nested exception is java.lang.IllegalArgumentException: Invalid boolean value '2'
	at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:46)
	at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:191)
	at org.springframework.expression.spel.support.StandardTypeConverter.convertValue(StandardTypeConverter.java:70)

經過反覆的嘗試,得出正確的寫法:

<select class="form-control" id="apType" th:value="${activePic.apType}=='1'?'首頁3主圖':(${activePic.apType}=='2'?'權威活動圖':'精彩活動圖')">

這是三個狀態標識的寫法,更多狀態的話,沒有嘗試,有興趣的同學可以嘗試一下,歡迎各位在本篇博客下方留言評論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章