-
Spring MVC(html과의 매핑)웹개발/Spring 2020. 7. 28. 00:39
이 내용은 인프런의 스프링 웹 MVC강좌를 참고하여 만들었습니다.
1, 주고받을 데이터를 사용하기 위하여 간단한 Event 객체 생성
public class Event { private Integer id; private String name; private Integer limit; public Integer getLimit() { return limit; } public void setLimit(Integer limit) { this.limit = limit; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
2, 타임리프를 통하여 간단하게 form.html페이지 생성
@{} : 해당 경로로 가게 됨(link expression)
${} : 변수를 받아오고 model로 넘겨준 값을 받아오게 됨(variable expression)
*{} : 변수안에 받아온 것의 필드에 접근(selection expression)
#{}: 변수안에 있는 문자열을 가지고 옴(message expression)
~{}: fragment를 넣고 싶을 때 사용, 보통 th:insert와 많이 사용됨(fragment expression)
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Create New Event</title> </head> <body> <form action = "#" th:action="@{/events}" method="post" th:object="${event}"> <input type="text" title = "name" th:field="*{id}"/> <input type="text" title = "name" th:field="*{name}"/> <input type="text" title="limit" th:field="*{limit}"> <input type="submit" value="Create"/> </form> </body> </html>
3, "/events/form"을
@Controller public class SampleController { @GetMapping("/events/form") public String eventsForm(Model model){ Event newEvent = new Event(); newEvent.setId(10); newEvent.setLimit(50); newEvent.setName("test"); model.addAttribute("event",newEvent); return "events/form"; } @PostMapping("/events") @ResponseBody public Event getEvent(@RequestParam Map<String, String> params) { Event event = new Event(); event.setId(Integer.valueOf(params.get("id"))); event.setName(params.get("name")); event.setLimit(Integer.valueOf(params.get("limit"))); return event; } }
4, 결과 화면
'웹개발 > Spring' 카테고리의 다른 글
Spring MVC(폼 서블릿 오류 해결) (0) 2020.07.28 Spring MVC(@ModelAttribute, @Valid, @Validated) (0) 2020.07.28 Spring MVC(요청 매개변수) (0) 2020.07.26 Spring MVC(URI 패턴) (0) 2020.07.26 Spring MVC(매핑정리) (0) 2020.07.26