comnic's Dev&Life

[Thymeleaf]값 출력 방법 정리 본문

JAVA & Spring

[Thymeleaf]값 출력 방법 정리

comnic 2019. 4. 30. 10:43
반응형

전달 받은 값을 Thymeleaf로 출력하는 방법을 정리 해 본다.

message와 items라는 메시지와 리스트가 값으로 넘어온다고 가정합니다.

1. html속성으로 출력

2가지 경우가 있습니다.
html의 내용으로 출력하는 경우와 속성의 값으로 출력하는 경우입니다.
먼저, div나 h1, span등의 내용으로 출력하는 경우 th:text를 사용합니다.

<div th:text="${message}">기본 메시지</div>
<h1 th:text="${message}">기본 메시지</h1>

이렇게 하면 <div>와 <h1>의 내용으로 출력됩니다.
참고로 html태그가 포함된 내용을 출력할 때는 unescaped text를 출력해 주는 th:utext를 사용하면 된다.

다음으로 속성에다 직접 값을 넣고자 할때는 속성이름 앞에 th:를 붙여주시면 됩니다.

<input type="text" th:value="${message}" value="기본값">

href, action, class, onclick 등 모든 속성에 다 사용 가능합니다. data-형식도 가능 합니다.

위에서 "기본 메시지"나 "기본값"을 입력하는 이유는 타임리프를 인식하지 못하는 경우에도 정상적으로 보이도록 하기 위함입니다. 즉, 디자이너와의 협업을 위한 방식이라고 볼 수 있습니다.

2. 반복출력

<tbody>
	<tr th:each="item : ${items}">
		<td th:text="${item.idx}">no</td>
		<td th:text="${item.title}">title</td>
	</tr>
</tbody>

반복의 경우 th:each로 묶어주시면 됩니다.

 

3. 속성내에 출력

간혹 속성 전체가 아닌 일부의 내용에 추가 하고 싶을 때가 있는데, 이때는 텍스트 조합을 사용하시면됩니다.

<div th:onclick="'clk_event1('+ ${item.menuid} + ')'">클릭</div>
<div th:onclick="|clk_event1( ${item.menuid} )|">클릭</div>

위 두가지 방법중 하나를 사용하시면 됩니다.

4. javascript 안에 출력

<script th:inline="javascript">
/*<![CDATA[*/

    var message = /*[[${message}]]*/ 'default';
    console.log(message);

/*]]>*/
</script>

script 태그에 속성으로 th:inline을 넣어주고,
위와 같이 사용하시면 됩니다.

반응형

'JAVA & Spring' 카테고리의 다른 글

Spring boot로 Rest Test를 위한 간단한 소스  (0) 2019.05.07
Comments