模型层需要提供数据选项,设置错误信息
关键代码
@NotNull @Size(min = 1, max = 5, message = "选择课程") private String[] course;
控制器层需要在显示视图前,通过model传递数据选项到视图层
数据代码
final static Map<String,String>CHECK_COURSE = Collections.unmodifiableMap(new LinkedHashMap<String,String>(){
private static final long serialVersionUID = 1L;
{
put("Java程序设计","java");
put("Spring","spring");
put("MySQL","mysql");
put("HTML","html");
}
});
关键代码
@GetMapping("/adduser")
public String showAddUserForm(Model model) {
User user = new User();
user.setId(userDao.getMaxId());
model.addAttribute("user", user);
model.addAttribute("checkItems", CHECK_COURSE);//通过此行设置数据到视图层
return "add-user";
}
视图层循环显示
关键代码
<div th:each="item : ${checkItems}">
<input type="checkbox" th:value="${item.value}" th:field="*{course}" />
<i th:for="${#ids.prev('course')}" th:text="${item.key}"></i>
</div>
详情列表显示代码
<td><p th:each="c:*{user.course}" th:text="${c}"></p></td>