Thymeleaf : th : each로 출력 할 때 구분 기호로 출력

3471 단어 Thymeleaf자바spring

소개



Thymeleaf에서 바삭바삭할 수 있는데 오랜만에 하면 잊기 쉽기 때문에 메모해 둔다.

하고 싶은 일



List등의 콜렉션에 저장된 정보를 thymeleaf로 출력할 때, 독점 「,」나 사선 「/」와 같은 단락 문자를 붙여 출력시키고 싶다.

목록 이미지
{
    "Fruits": [
        {
            "name": "りんご"
        },
        {
            "name": "みかん"
        },
        {
            "name": "バナナ"
        }
    ]
}

출력 결과
りんご、みかん、バナナ

방법



스텝 1 우선 출력



우선 출력
<th:block th:each="fruit:${fruits}">
  <span th:text="${fruit.name}"></span>
</th:block>


출력 결과
りんごみかんバナナ

스텝 2 독점을 표시한다


<th:block th:each="fruit:${fruits}">
  <span th:text="${fruit.name}"></span>
  <span></span>
</th:block>

물론 이것이라면 바나나 뒤에 독점이 나옵니다.

출력 결과
りんご、みかん、バナナ、

3 단계 상태 변수의 last 매개 변수를 사용하여 조건 분기


<th:block th:each="fruit, iterStat:${fruits}"> <!-- ステータス変数はカンマ区切りで2つ目の引数として受け取れる -->
  <span th:text="${fruit.name}"></span>
  <span th:unless="${iterStat.last}"></span><!-- last変数はループの最後でtrueを返します -->
</th:block>

이제 루프 끝에만 ","를 표시하지 않도록 할 수 있습니다.

출력 결과
りんご、みかん、バナナ

스테이터스 변수에는 last 이외에도 몇개의 파라미터가 있으므로, 기억해 사용하면 해피가 될 수 있을지도 모릅니다.
참고) Tutorial: Using Thymeleaf (ko) 6.2 반복 상태 유지



Tutorial: Using Thymeleaf에도 쓰여졌지만 iterStat는 명시적으로 쓸 필요가 없습니다.
생략하면 반복 변수 (fruit) 뒤에 Stat이있는 변수 이름이 암시 적으로 작성됩니다.
가독성의 겸용으로 쓰는 편이 좋을까라는 생각도 듭니다만, 이쪽이 깔끔하네요.
<th:block th:each="fruit :${fruits}">
  <span th:text="${fruit.name}"></span>
  <span th:unless="${fruitStat.last}"></span>
</th:block>

좋은 웹페이지 즐겨찾기