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

백승진님의 프로필 이미지
백승진

작성한 질문수

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

라디오 버튼

type.name()이 아니라 그냥 type으로

작성

·

659

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

<div>상품 종류1</div>
<div th:each="type : ${itemTypes}" class="form-check form-check-inline">
    <input type="radio" th:field="${item.itemType}" th:value="${type.name()}" class="form-check-input" disabled>
<div>상품 종류2</div>
<div th:each="type : ${itemTypes}" class="form-check form-check-inline">
    <input type="radio" th:field="${item.itemType}" th:value="${type}" class="form-check-input" disabled>

위에서 field에 있는 값과 value 값을 비교해서 같을 시에 checked가 추가된다고 말씀하셨습니다. 영한님께서 수업 때 하신 방식인 상품 종류 1처럼 하게 되면 String 값과 enum을 비교하는 거니까 상품 종류 2처럼 enum과 enum을 비교하는 게 맞지 않나 생각이 들어서 질문 드립니다! 제가 상품 종류 2로 코드를 바꿔서 해도 정상적으로 동작했습니다.

답변 1

2

안녕하세요. 백승진님, 공식 서포터즈 David입니다.

두 가지 방법 모두 가능한 방법입니다.

템플릿 엔진에서 th:field="${item.itemType}", th:value="${type}"를 처리할 때, enum to string 컨버터를 통해 내부적으로 enum.name()이 호출됩니다.

이렇게 변환된 문자열 데이터를 들고 있다가, field와 value를 비교하여 체크 되어야 하는 라디오 버튼인지 아닌지 판단합니다.

따라서, type.name(), type 둘 중 뭘 써도 큰 차이는 없습니다.

감사합니다.

백승진님의 프로필 이미지
백승진

작성한 질문수

질문하기