如何在Theymeleaf上显示与TodoList关联的待办事项?

时间:2018-01-17 03:07:45

标签: java spring spring-mvc spring-boot

我正在创建一个todo应用程序,其中索引页面上有TodoLists,当您单击TodoList时,您可以看到与其关联的所有待办事项。

e.g。当您在索引页面上单击TodoList“购物”时,您可以看到一个显示页面,其中包含衣服,食物等“待办事项”。

TodoListController.java

package com.teamlab.todolist.web;

import com.teamlab.todolist.domain.TodoList;
import com.teamlab.todolist.repository.TodoListRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

@Controller
@RequestMapping("/todoLists")
public class TodoListController {

    @Autowired
    TodoListRepository todoListRepository;

    @GetMapping
    public String getAllTodoLists(Model model) {
        List<TodoList> todoLists = todoListRepository.findAll();
        model.addAttribute("todoLists", todoLists);
        return "todoLists/index";
    }

    @GetMapping("{id}")
    public String showAllTodos(@PathVariable Long id, Model model) {
        TodoList todoList = todoListRepository.findOne(id);
        model.addAttribute("todoList", todoList);
        return "todoLists/show";
    }

    @PostMapping
    public String createTodoList(@ModelAttribute TodoList todoList) {
        todoListRepository.save(todoList);
        return "redirect:/todoLists";
    }

}

我的show.html页面中没有任何代码。

我之前曾在一个Rails应用程序上工作,在那里我有一个课程对象,在该课程对象中是课程对象。通过在视图模板中拉出相关视图,我能够显示与单个课程相关的所有课程,如下所示。

<% @course.lessons.each do |lesson| %>
      <h2><%= link_to lesson.title, lesson_path(lesson.id) %></h2>
  <% end %>

我不确定如何在Spring Boot中执行此操作,我也不确定这是否是解决此问题的正确方法。

1 个答案:

答案 0 :(得分:0)

您可以使用th:each在百里香中做同样的事情。您将使用model.addAttribute("todoLists", todoLists);返回所有todoList。您可以使用

在UI中todoLists处理数据
<table >
    <tr th:each="todoList: ${todoLists}">
    <td th:text="${todoList.name}"></td>
    <td th:text="${todoList.priority}"></td>
    <td th:text="${todoList.status}"></td>
    </tr>
</table>