16.mustache

강재영's avatar
Aug 19, 2024
16.mustache
 
💡
Mustache는 다양한 프로그래밍 언어와 플랫폼에서 사용할 수 있는 논리적이지 않은 템플릿 시스템입니다. Mustache 템플릿은 "논리적이지 않다"는 점에서 특이한데, 이 말은 템플릿 안에서 조건문이나 반복문 같은 논리 연산을 수행하지 않고, 단순히 데이터를 템플릿에 삽입하는 역할만 한다는 것을 의미합니다. Mustache는 HTML, XML, JSON, YAML 등 다양한 텍스트 형식에 사용될 수 있습니다. 즉 jsp jstl 과 다르게 연산을 할 수 없으므로 자바에서 모든 구조를 만들고 mustache로 넘겨야한다.
 

1.application.properties 설정

spring.mustache.servlet.expose-request-attributes=true spring.mustache.servlet.expose-session-attributes=true
기본적으로 mustache는 서버의 request객체나 session객체에 접근이 불가능하기에 프로퍼티에 접근이 가능하도록 등록해야한다.
 

2.문법 controller

//GET, POST @GetMapping("/board") public String list(HttpServletRequest request) { // model 이 Httpservletrequest이다. List<Board> boardList = boardRepository.findAll(); request.setAttribute("models", boardList); HttpSession session = request.getSession(); session.setAttribute("num", 1); return "board/list"; }
boardList정보를 request객체에 저장을 하엿고 이를 models라고 했다.
또한 session에 num이라는 키값으로 숫자 1을 저장을 했다.
 
 

3.문법 mustache파일

{{>layout/header}} <div class="container p-5"> <h1>{{num}}</h1> {{#models}} <div class="card mb-3"> <div class="card-body"> <h4 class="card-title mb-3">{{title}}</h4> <a href="/board/{{id}}" class="btn btn-primary">상세보기</a> </div> </div> {{/models}} </div> {{>layout/footer}}
{{}}안에 키값만으로 접근이 가능하면
반복문을 쓰기 위해서는 {{#키값}} {{/키값}}을 통해서 사용이 가능하다.
Share article

강재영 블로그