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'?'权威活动图':'精彩活动图')">

这是三个状态标识的写法,更多状态的话,没有尝试,有兴趣的同学可以尝试一下,欢迎各位在本篇博客下方留言评论。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值