인프런 커뮤니티 질문&답변

gmldnjs0402님의 프로필 이미지
gmldnjs0402

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

입력 폼 처리

field 태그 질문

작성

·

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로, 그리고 필드의 idnameitemName으로 설정합니다.

user.itemNamevalue로 사용하고 싶다면, th:value="${user.itemName}" 처럼 명시적으로 th:value를 사용할 수 있습니다. idname을 다른 값으로 설정하고 싶다면, th:field 대신 idname 속성을 직접 명시할 수 있습니다.

만약 valueuser.itemName으로 하고 idnameitemNames로 설정하고 싶다면, th:field를 사용하지 않고 각각 id, name, value 속성을 직접 써주어야 합니다. 예를 들면, 다음과 같습니다:

<input type="text" id="itemNames" name="itemNames" th:value="${user.itemName}" />

th:field는 말씀하신 바와 같이 모델에 있는 특정 속성과 직접 연결하기 위해 설계되었기 때문에, value, id, name을 각기 다르게 설정하려면 th:field를 사용하지 않고 개별 속성을 직접 지정해야 합니다.

gmldnjs0402님의 프로필 이미지
gmldnjs0402

작성한 질문수

질문하기