<input id="serviceFeeRateOutput" th:value="${#numbers.formatDecimal(commission.serviceFeeRate * 100 , 2, '0')}" th:placeholder="#{html.commission.msg.serviceFeeRate}" class="form-control" type="number" maxlength="30" required> 报如下错误 Exception evaluating SpringEL expression: "#numbers.formatDecimal(commission.commissionRateS * 100 , 2, '0')" (template: "main/web/commission/commission/edit" - line 51, col 63)
时间: 2023-07-06 21:14:40 浏览: 150
这个错误通常是因为 `commission.serviceFeeRate` 的值为 `null` 或 `undefined` 导致的。可以在表达式中使用 `?:` 运算符来判断 `commission.serviceFeeRate` 是否为空,如果为空则使用默认值 `0`。
以下是修改后的代码示例:
```html
<input id="serviceFeeRateOutput"
th:value="${commission.serviceFeeRate != null ? #numbers.formatDecimal(commission.serviceFeeRate * 100 , 2, '0') : '0'}"
th:placeholder="#{html.commission.msg.serviceFeeRate}"
class="form-control"
type="number"
maxlength="30"
required>
```
在这个示例中,我们使用了三目运算符 `condition ? valueIfTrue : valueIfFalse` 来判断 `commission.serviceFeeRate` 是否为空。如果不为空,则使用 `#numbers.formatDecimal(commission.serviceFeeRate * 100 , 2, '0')` 计算格式化后的数值;否则使用字符串 `'0'` 作为默认值。
另外,如果 `commission.serviceFeeRate` 可能为字符串类型的数字,可以先使用 `#strings.trim()` 和 `#strings.isEmpty()` 方法来判断其是否为空。例如:
```html
<input id="serviceFeeRateOutput"
th:value="${#strings.trim(commission.serviceFeeRate) != '' ? #numbers.formatDecimal(commission.serviceFeeRate * 100 , 2, '0') : '0'}"
th:placeholder="#{html.commission.msg.serviceFeeRate}"
class="form-control"
type="number"
maxlength="30"
required>
```
这样可以先将字符串类型的数字去掉空格,再判断是否为空。
阅读全文