728x90
컨트롤러
IpPort to String 컨버터가 적용되어있다는 가정하에
@GetMapping("/converter-view")
public String converterView(Model model) {
model.addAttribute("number", 10000);
model.addAttribute("ipPort", new IpPort("127.0.0.1", 8080));
return "converter-view";
}
HTML
{{ }} 로 작성해야 컨버터 기능 사용 {} X
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>${number}: <span th:text="${number}" ></span></li>
<li>${{number}}: <span th:text="${{number}}" ></span></li>
<li>${ipPort}: <span th:text="${ipPort}" ></span></li>
<li>${{ipPort}}: <span th:text="${{ipPort}}" ></span></li>
</ul>
</body>
</html>
Form 을 사용하여 Converter 기능 사용
컨트롤러
@GetMapping("/converter/edit")
public String converterForm(Model model) {
IpPort ipPort = new IpPort("127.0.0.1", 8080);
Form form = new Form(ipPort);
model.addAttribute("form", form);
return "converter-form";
}
@PostMapping("/converter/edit")
public String converterEdit(@ModelAttribute Form form, Model model) {
IpPort ipPort = form.getIpPort();
model.addAttribute("ipPort", ipPort);
return "converter-view";
}
@Data
static class Form{
private IpPort ipPort;
public Form(IpPort ipPort) {
this.ipPort = ipPort;
}
}
HTML
타임리프의 th:field 기능을 사용하면 form에 담겨있는 ipPort 컨버팅
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form th:object="${form}" th:method="post">
th:field <input type="text" th:field="*{ipPort}"><br/>
th:value <input type="text" th:value="*{ipPort}">(보여주기 용도)<br/>
<input type="submit"/>
</form>
</body>
</html>
728x90
'백엔드 > Spring(Boot)' 카테고리의 다른 글
스프링 파일 업로드 (0) | 2021.10.05 |
---|---|
스프링 Formatter 적용 (0) | 2021.10.04 |
스프링에 Converter 적용하기 (0) | 2021.10.03 |
스프링 @ExceptionResolver 예외처리(API) (0) | 2021.10.03 |
스프링 부트 에러 페이지 설정 (0) | 2021.10.02 |