我们通常会用HashMap 或者 Enum来做页面中的select下拉菜单。那么在thymeleaf中遍历并且选中方法如下:
<div class="form-group" style="margin-left: 30px">
<label class="control-label hidden-xs">任务状态:</label>
<select th:filed="${task_status}" th:value="${task_status}" name="task_status"
class="custom-select" style="margin-left: 16px">
<div th:each="enmu:${statusEnum}">
<option th:selected="${task_status == enmu.code}" th:value ="${enmu.code}">
<span th:text="${enmu.msg}"></span>
</option>
</div>
</select>
</div>
其中 ${task_status} 为后台传递过来的需要选中的值 statusEnum为后台传递过来的枚举 code msg字段均是枚举类中定义的字段。写法如下
//Controller类中代码
modelAndView.addObject("task_status",task_status);
modelAndView.addObject("statusEnum", TaskStatus.values());
//枚举类代码
public enum TaskStatus {
ALL_STATUS(-1,"-全部-"),
NORMAL(0,"未领取"), //正常 未领取
INAVLID(1,"已废弃"), //无效 已经废弃
EXECUTION_PROCESS(2,"执行中..."),
EXEC_FINISH(3,"执行完毕");
private final int code;
private final String msg;
TaskStatus(int code, String msg){
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
}