“只读如果参数”在百里香中不起作用

Mar*_*o L 3 java spring-mvc thymeleaf

如果当前 url 具有参数“action=edit”,我希望将某些控件标记为只读。

我尝试过以下方法:

网址:http://xxxx:8080/department?id=000001&action=edit

<input type="text" th:placeholder="#{department.id}" class="form-control" th:field="*{id}" th:readonly="${param.action == 'edit'}">
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这总是错误的。我也尝试过展示价值:

<input type="text" class="form-control" th:value="${param.action}" th:readonly="${param.action=='edit'}">
Run Code Online (Sandbox Code Playgroud)

这显示输入中的值“编辑”,但只读仍然为假。然后我尝试了以下操作:“${param.action != 'edit'}”并且这是有效的。为什么?param.action 等于“edit”,但 IF 采用一些不同的值。

Met*_*ids 5

${param.action}是一个数组(为了支持多值参数)。为了获得该值,您可能必须执行以下操作:

${param.action != null AND param.action[0]=='edit'}
Run Code Online (Sandbox Code Playgroud)

(如果操作参数总是出现,则可以跳过空检查,否则会遇到空指针异常。)