模型层需要提供数据选项,设置错误信息
关键代码
@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>