我有一个大型表单,我在数据库中保存了参数,因此下次用户进入时,之前的选择会在各个下拉列表中预先选择。
类似于这篇文章:Thymeleaf + Spring form - How load persisted select box values from controller to view?
主要区别是我有大量参数,并且我试图使其更通用。
基本上,我有一个 Java 中的 ParameterSet 对象,其中包含 getParameterByName 函数和 contains 方法,用于检查在之前的运行中是否选择了下拉列表的动态可能值。
我的问题可能与 Thymeleaf 语法有关。我一直在玩 th:selected='${campaignRunCommand.parameterSet.parameters.getParameterByName("states").contains("${st}")}' 我什至不确定是否可以像这样在 Thymeleaf 内发送没有参数的静态值。
<select class="js-example-basic-multiple" style="width: 75%"
id="cstates" name="cstates" multiple="multiple">
<option th:each="st : ${states}" th:value="${st}" th:selected='${campaignRunCommand.parameterSet.parameters.getParameterByName("states").contains("${st}")}'
th:text="${st}"></option>
最佳答案
最后,我的问题确实是语法问题,而且很简单。
这 contains("${st}")}' 不是正确的语法。您不需要再次告诉 Thymeleaf 这是该表达式内的变量。 .contais(st) 工作正常。
关于java - Thymeleaf + Spring 下拉菜单在选定的下拉框中保留数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57796753/