타임리프는 ${{...}}
를 사용하면, 자동으로 컨버전 서비스를 사용해서 변환해준다.
실행하게 되면 이와 같이 뷰에서 컨버터를 호출하는 것을 확인할 수 있다.
${{number}}
: 뷰 템플릿은 데이터를 문자로 출력한다. 따라서 컨버터를 적용하게 되면 Integer
타입인 10000 을 String
타입으로 변환하는 컨버터인 IntegerToStringConverter
를 실행하게 된다. 이 부분은 컨버터를 실행하지 않아도 타임리프가 숫자를 문자로 자동으로 변환히기 때문에 컨버터를 적용할 때와 하지 않을 때가 같다.
${{ipPort}}
: 뷰 템플릿은 데이터를 문자로 출력한다. 따라서 컨버터를 적용하게 되면 IpPort
타입을 String
타입으로 변환해야 하므로 IpPortToStringConverter
가 적용된다. 그 결과 127.0.0.1:8080
가 출력된다.
th:field
는 자동으로 컨버터 기능이 들어가있어 ${{...}}
처럼 하지 않아도 자동으로 컨버터가 된다.
반면, th:value
의 경우에는 적용되지 않는다.