package io.spring.boot.sample.web.dustjs; import io.spring.boot.sample.web.dustjs.model.Todo; import io.spring.boot.sample.web.dustjs.model.TodoStatus; import io.spring.boot.sample.web.dustjs.model.User; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import static java.time.LocalDateTime.now; /** * @author chanwook */ @Controller public class SampleController { final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm"); @RequestMapping("/hello") public String hello(ModelMap model) { model.put("title", "Greeting!!"); return "hello"; } @RequestMapping("/partial") public String partial() { return "master"; } @RequestMapping("/{userName}/todos") public String todos(@PathVariable String userName, ModelMap model) { final User user = new User(userName); final List<Todo> todos = new ArrayList<>(); final String now = dateFormat(now()); todos.add(new Todo("1", "Eat breakfast", TodoStatus.CLOSE, now, dueDate(7, 0))); todos.add(new Todo("2", "Eat lunch", TodoStatus.OPEN, now, dueDate(12, 0))); todos.add(new Todo("3", "Eat supper", TodoStatus.OPEN, now, dueDate(18, 0))); todos.add(new Todo("4", "Study chinese", TodoStatus.PENDING, now, dueDate(20, 0))); model.put("user", user); model.put("todos", todos); return "todo"; } private String dueDate(int hour, int min) { LocalDateTime due = now(); due = due.withHour(hour).withMinute(min); return dateFormat(due); } private String dateFormat(LocalDateTime dateTime) { return dateTime.format(formatter); } }