Open binchoo opened 3 years ago
src/main/resources/templates
컨트롤러가 반환한 값이 S라면 ${템플릿 기본경로}/$S.mustache
경로가 리졸브 된다.
@Controller
public class IndexController {
@GetMapping("/")
public String index() {
return "index"; // "src/main/resources/templates/index.mustache"
}
}
{{>}}
상대 경로법상대경로/파일명 without 확장자 형식으로 지정한다.
ex) {{>상대경로/파일명}}
{{>layout/header}}
: ./layout/header.mustache 파일을 인클루드
@GetMaping("/")
public String index(Model model) {
model.addAttributes("posts", postsService.findAllDesc());
return "index";
}
{{#posts}} ... {{/posts}}
{{#posts}}
<!--순회하며 실행할 내용-->
<tr>
<td>{{id}}</td> <!--순회로 얻은 객체의 id 필드를 지정-->
<td>{{title}}</td> <!--순회로 얻은 객체의 title 필드를 지정-->
...
</tr>
{{/posts}}
모델에게 DTO를 주입한다는 사실을 명심하자! 컨트롤러가 Entity를 다룰 일이 없다~
@GetMaping("/posts/update/{id}")
public String index(@Pathvariable Long id, Model model) {
PostsResponseDto dto = postsService.findById(id);
model.addAttributes("post", dto);
return "posts-update";
}
{객체.필드}
<textarea class="form-control" id="content">{{post.content}}</textarea>
엔티티 리스트에서 DTO 리스트를 만드는 상용구 코드
postsRepository.findAllDesc().stream()
.map(PostsListResponseDto::new)
.collect(Collectors.toList());
코틀린이었다면?
postsRepository.findAllDesc().map(::PostsListResponseDto)
[무스터치 문법 정리 부탁해요~]