Thymeleaf 3 - 数据文本不能包含" Not" - 无法解析为表达式:" Not"例外

时间:2018-01-29 11:28:10

标签: thymeleaf

我有一个简单的选择表单,有三个选项。我希望其中一个是" 未安装" 问题是我不能设置" Not"在数据文本中,因为它被认为是一种表达。

<div class="form-group">
                    <label for="status">Status:</label>
                    <select data-th-field="*{status}" id="status" class="form-control">
                        <option data-th-value="available" data-th-text="Available"></option>
                        <option data-th-value="broken" data-th-text="Broken"></option>
                        <option data-th-value="not mounted" data-th-text="Not Mounted" ></option>
                    </select>
</div>

我收到了费用

org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "Not" (template: "exhibitor/editExhibitor" - line 20, col 60)

如何显示&#34;未安装&#34;文字?

2 个答案:

答案 0 :(得分:2)

如果您正在使用Clear(),那么百日咳正在期待一个可以评估的表达式。这里有2个选项:

使用常规属性。

data-th-text

让你的属性有效的百里香表达。

<div class="form-group">
    <label for="status">Status:</label>

    <select data-th-field="*{status}" id="status" class="form-control">
        <option value="available">Available</option>
        <option value="broken">Broken</option>
        <option value="not mounted">Not Mounted</option>
    </select>
</div>

<div class="form-group">
    <label for="status">Status:</label>
    <select data-th-field="*{status}" id="status" class="form-control">
        <option data-th-value="'available'" data-th-text="'Available'"></option>
        <option data-th-value="'broken'" data-th-text="'Broken'"></option>
        <option data-th-value="'not mounted'" data-th-text="'Not Mounted'" ></option>
    </select>
</div>

答案 1 :(得分:1)

  1. 您可以确保Thymeleaf通过使用了解它是一个字符串 单引号:

    data-th-text="'Not Mounted'"

  2. 甚至更好,让它国际化并从消息包中获取它:

    data-th-text="#{notMounted}"

    messages.properties

    notMounted=Not Mounted

    然后可以选择:

    <option th:text="#{notMounted}" value="not mounted">Not Mounted</option>

  3. 请注意,无论您选择哪个选项,您都希望使用反斜杠\转义字符串中的任何单引号。