작성
·
218
0
리터럴 문자||의 위치가 헷갈려 여러가지 테스트를 해보는 중에 "리터럴 대체 문자"와 "링크표현식 @"관련해서 질문이 있어 문의드립니다.
강의예시에 나온
th:onclick="|location.href='@{/basic/items/add}'|"
위의경우 리터럴대체문자안에 링크표현식을 넣은경우 정상적으로 작동이 되고있는데
강의 예시에 나온
th:href="@{|/basic/items/${item.id}|}
위의 표현식을
|@{/basic/items/${item.id}}|
로 바꿔서 테스트를 해봤더니
소스보기로
/basic/items/${item.id} 로나오고있어 정상작동이
되지 않는 것을 확인하였습니다.
저의 현재 생각으로는 ${item.id}는 변수표현식으로 1로 바뀌고 그이후 링크 표현식이 적용되고 그이후 리터럴 문자가 적용되서 /basic/items/1 이거처럼 문제없이 나와야된다고 생각했는데 혹시 리터럴문자와 링크 @표현식에 적용되는 규칙이 있는걸까요??
(|location.href='@{/basic/items/add}'|이게 정상작동되는걸보고 테스트 해봤었음)
답변 1
0
안녕하세요. 박경표님, 공식 서포터즈 OMG입니다.
아래의 영한님의 답변에서도 확인하실 수 있듯이
"리터럴 대체 표현식 |은 단순한 경우에만 동작합니다."
단순하게 동작한다는 말은 바꿔말하면 기본적으로 타임리프에서 정의해놓은 규칙을 벗어나면 예상한대로 작동하지 않을 수 있다는 말로 이해하셔도 좋을 것 같습니다.
참고
안녕하세요 타임리프 질문입니다 - 인프런 | 질문 & 답변 (inflearn.com)
감사합니다.
추가로 아시면 도움이 될만한 정보를 소개해드리고 싶은데요. 아래의 내용도 읽어보시길 권장드립니다:)
참고
th:onclick에서 굳이 @{경로} 쓰는 이유가? - 인프런 | 질문 & 답변 (inflearn.com)