작성
·
144
0
*{itemName} 을 하면 item object 안에 속한 값이라고 인식하고 편하게 쓸 수 있다고 하셨는데, value 와 id,name 설정과는 별개인거죠?
value 는 user.itemName 로 가져오는 것이고, id랑 name 은 그저 itemName 이라는 명칭만 보고 설정해주는게 맞는건가해서요.
만약 user.itemName 이 value 이고 id,name은 따로 itemNames 라고 설정해주려면 *{itemName} 태그는 못쓰는건가요? 만약 value 값 상관없이 id,name 설정만 해주려고한다면 th:field="itemNames" 라고만 해주면 되나요?
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
gmldnjs0402님의 질문은 Thymeleaf 템플릿 엔진에서 th:field
를 사용하는 방법에 대한 것으로 보입니다. th:field
는 Thymeleaf에서 form의 입력 필드(bidirectional)를 객체의 속성과 연결할 때 사용하는 속성입니다.
th:field
를 사용하면, id
, name
, value
세 가지 속성을 자동으로 설정해줍니다. 예를 들어, th:field="*{itemName}"
을 사용하면 Thymeleaf는 해당 필드에 연결된 객체의 itemName
속성의 값을 value
로, 그리고 필드의 id
와 name
을 itemName
으로 설정합니다.
user.itemName
을 value
로 사용하고 싶다면, th:value="${user.itemName}"
처럼 명시적으로 th:value
를 사용할 수 있습니다. id
와 name
을 다른 값으로 설정하고 싶다면, th:field
대신 id
와 name
속성을 직접 명시할 수 있습니다.
만약 value
는 user.itemName
으로 하고 id
와 name
은 itemNames
로 설정하고 싶다면, th:field
를 사용하지 않고 각각 id
, name
, value
속성을 직접 써주어야 합니다. 예를 들면, 다음과 같습니다:
<input type="text" id="itemNames" name="itemNames" th:value="${user.itemName}" />
th:field
는 말씀하신 바와 같이 모델에 있는 특정 속성과 직접 연결하기 위해 설계되었기 때문에, value
, id
, name
을 각기 다르게 설정하려면 th:field
를 사용하지 않고 개별 속성을 직접 지정해야 합니다.