thymeleaf로 data- * 속성을 설정할 수 있습니까?
thymeleaf 문서에서 이해했듯이 시도했습니다.
<div th:data-el_id="${element.getId()}"> <!-- doesn't work -->
<div data-th-el_id="${element.getId()}"> <!-- doesn't work -->
thymeleaf로 data- * 속성을 설정할 수 있습니까?
thymeleaf 문서에서 이해했듯이 시도했습니다.
<div th:data-el_id="${element.getId()}"> <!-- doesn't work -->
<div data-th-el_id="${element.getId()}"> <!-- doesn't work -->
답변:
예, th:attr
구조 Thymeleaf 문서-설정 속성 값 .
시나리오의 경우 다음 작업을 수행해야합니다.
<div th:attr="data-el_id=${element.getId()}">
XML 규칙을 사용하면 태그에 속성을 두 번 설정할 수 없으므로 th:attr
동일한 요소에 둘 이상의 속성을 가질 수 없습니다 .
참고 : 하나 이상의 속성을 원하는 경우 다른 속성을 쉼표로 구분하십시오.
<div th:attr="data-id=${element.getId()},data-name=${element.getName()}">
th:attr="data-id=${element.getId()},data-name=${element.getName()}"
th:attr="data-id='some-text'+${element.getId()}+'some-other-text',data-name=${element.getName()}"
또는이 Thymeleaf 방언 https://github.com/mxab/thymeleaf-extras-data-attribute 를 사용할 수 있습니다.
<div data:el_id="${element.getId()}">
Thymeleaf 3.0 거기입니다 기본 속성 프로세서 사용자 지정 특성의 모든 종류에 사용할 수 있습니다, 예를 들어이 th:data-el_id=""
되고 data-el_id=""
, th:ng-app=""
이된다 ng-app=""
등등. 더 이상 사랑하는 데이터 속성 방언이 필요하지 않습니다.
이 솔루션 은 다음 대신 json 을 값 으로 사용하려는 경우 선호합니다 .
th:attr="data-foobar='{"foo":'+${bar}+'}'"
다음을 사용할 수 있습니다 ( 리터럴 대체 와 함께 ) :
th:data-foobar='|{"foo":${bar}}|'
업데이트 : 당신이 마음에 들지 않으면 th
네임 스페이스, 당신은 또한 사용할 수있는 HTML5에게 친화적 인 속성과 요소 이름 등이 data-th-data-foobar=""
.
관심이있는 사람은 여기에서 관련 템플릿 엔진 테스트를 찾을 수 있습니다. 기본 속성 프로세서 테스트
th:data-el_id
작동합니다.