ํ๋ก์ ํธ ์ ์ง๋ณด์๋ฅผ ์ํ ๋ฆฌํฉํ ๋ง ์์ ๋์ค
ํ๋์ ํ์ด์ง์์ ์ฌ์ฉ์ ๊ถํ์ ๋ฐ๋ผ
thymeleaf์ layout decorate์ ๊ฒฝ๋ก๊ฐ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ก ์ฒ๋ฆฌํด์ผ ํ๋ค.
์ฒ์์ layout:decorate ์์ฑํ๋ html ํ๊ทธ ๋ถ๋ถ์
th:block์ผ๋ก ๊ฐ์ธ th:if๋ฅผ ์ด์ฉํด ์ฒ๋ฆฌํ๋ ค ํ๋ค.
<!-- ์ฌ์ฉ์ ๊ถํ์ด ํ๋งค์ ๊ถํ์ผ ๊ฒฝ์ฐ '/seller/layout/default' ๊ฒฝ๋ก๋ก ์ค์ -->
<th:block th:if="${session.STYPECODE == 'mem_type_02'
|| session.STYPECODE == 'mem_type_03'
|| session.STYPECODE == 'mem_type_04'}">
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{'/seller/layout/default'}">
</th:block>
<!-- ์ฌ์ฉ์ ๊ถํ์ด ๊ด๋ฆฌ์ ๊ถํ์ผ ๊ฒฝ์ฐ '/admin/layout/default' ๊ฒฝ๋ก๋ก ์ค์ -->
<th:block th:if="${(session.STYPECODE == 'mem_type_01')}">
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{'/admin/layout/default'}">
</th:block>
๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ 500 ์๋ฌ๊ฐ ๋ฌ๋ค.
java.lang.IllegalArgumentException: layout:decorate/data-layout-decorate must appear in the root element of your template
๋ฌธ์ ์ ์ค๋ฅ๋ layout:decorate๋ data-layout-decorate๊ฐ ํ ํ๋ฆฟ์ ์ต์์ ์๋ฆฌ๋จผํธ์ ๋ํ๋์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๊ฒฐ๊ตญ ํด๋น ๋ฐฉ๋ฒ์ผ๋ก๋ th:block ์ชฝ์ ์ ๋๋ก ์ฝ์ง ๋ชปํ๋ ๊ฒ์ผ๋ก ์ถ์
์ผ๋จ html ํ๊ทธ์ ์๋ xmlns:th, xmlns:layout, layout:decorate ๊ฐ ๋จผ์ ์์ฑ ๋์ด ์์ด์ผ th:block์ด๋ th:if๋ ์ฝ์ ์ ์๋ ๊ฒ์ธ๋ฐ th:if๊ฐ ์ฝํ๊ธฐ ์ ์ ์ด๋ฌํ ์ ์ธ๋ถ๊ฐ ์์ฑ๋์ง ์์์ ์๋๋ ๊ฒ ์ผ๊น?
๋ ๋ฒ์งธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ผํญ ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ์์ ํด๋ณด๊ธฐ๋ก ํ๋ค.
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="@{|${(session.STYPECODE == 'mem_type_02'
|| session.STYPECODE == 'mem_type_03'
|| session.STYPECODE == 'mem_type_04')? '/seller/layout/default'
:(session.STYPECODE == 'mem_type_01')? '/admin/layout/default':''}|}">
์ด๋ฐ์์ผ๋ก ์ฒ๋ฆฌํ๋๋ ์ ์์ ์ผ๋ก ์ถ๋ ฅ๋๋ค.
์ข ๋ ์์๋ณด๋ค๋ณด๋
๋ด๊ฐ ์ฌ์ฉํ @{| |} ํํ์์ ์๋ฒ ๋ด๋ถ์์ ์ฒดํฌํ์ง ์๊ณ
ํด๋ผ์ด์ธํธ๋ก ์ง์ ์ ๋ฌํ๋ ํํ์,
@{ } ๋ก ์์ฑํ ๊ฒฝ์ฐ ์๋ฒ์์ ์กฐ๊ฑด์ ํ๊ฐ ํ ํด๋ผ์ด์ธํธ๋ก ์ ๋ฌํ๋ ์์ด๋ผ๋ ๊ฒ์ ์์๋ค.
์๋ฒ์ ๋ก์ง์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ ์ด์์์ ์ ํํด์ผ ํ ๋๋ @{ }๋ก ์์ฑํ๋ ๊ฒ์ด ์ ์ฉํ๊ณ
์ด๋ฏธ ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋ฌธ์์ด์ด ์๋ฒ์์ ์์ฑ๋์ด ์๊ณ
ํด๋ผ์ด์ธํธ๋ก ๊ทธ๋๋ก ์ ๋ฌํ๋ ค๋ฉด @{| |} ํํ์์ด ์ ์ฉํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
<!-- ์์ 1 -->
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="@{${session.STYPECODE == 'mem_type_02'
or session.STYPECODE == 'mem_type_03'
or session.STYPECODE == 'mem_type_04'} ? '/seller/layout/default'
: ${session.STYPECODE == 'mem_type_01'} ? '/admin/layout/default' : ''}">
<!-- ์์ 2 -->
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="@{|${session.STYPECODE == 'mem_type_02'
or session.STYPECODE == 'mem_type_03'
or session.STYPECODE == 'mem_type_04'} ?'/seller/layout/default'
: ${session.STYPECODE == 'mem_type_01'} ? '/admin/layout/default' : ''}|">
์ํฉ์ ๋ฐ๋ผ ์์ 1 ํน์ ์์ 2 ํํ๋ก ์์ฑ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ
๋๋ ์ด๋ฏธ ์ปจํธ๋กค๋ฌ์ ๊ฒฝ๋ก๊ฐ ์ ํด์ ธ ์์ผ๋ ์์ 2๋ฒ์ผ๋ก ์ ํํด ์์ ํ๋ค.
+ ์์
์์ 2๋ฒ์ผ๋ก ํ์ ๋ ๋ก์ปฌ ์๋ฒ์์๋ ๋ฌธ์ ๊ฐ ์์ผ๋
jenkins๋ฅผ ์ด์ฉํด ๋ฐฐํฌ ํ์ ๊ฒฝ์ฐ ์ ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ง ์์๋ค....
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{|${(session.STYPECODE == 'mem_type_02'
|| session.STYPECODE == 'mem_type_03'
|| session.STYPECODE == 'mem_type_04')? 'seller/layout/default'
:(session.STYPECODE == 'mem_type_01')? 'admin/layout/default':''}|}">
~{ | | } ๋ก ๋ฐ๊ฟ์ ํด๊ฒฐํ๋ค.