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

jfk6725님의 프로필 이미지

작성한 질문수

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

라디오 버튼

라디오버튼이 강제 설정이 되지 않는 이유는?

작성

·

250

0

라디오 버튼을 아래와 같이 수정했는데 , 상품등록 폼의 첫번째 라디오 버튼이 강제 설정이 안됩니다. 이유가 뭘까요?

 

<div th:each="type, status : ${itemTypes}" class="form-check form-check-inline">
    <input type="radio" th:field="*{itemType}" th:value="${type.name}" th:checked="${status.index == 0}"
           class="form-check-input">
    <label th:for="${#ids.prev('itemType')}" th:text="${type.description}"
           class="form-check-label">
        BOOK
    </label>
</div>

 

 

 

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jfk6725님

타임리프의 th:field가 radio에서 사용되는 경우 타임리프는 그 내부에 있는 객체 정보를 기반으로 checked 여부를 판단합니다.

따라서 컨트롤러에서 item 객체를 뷰에 전달하는 시점에 item에 BOOK 타입을 넣어두셔야 합니다.

제가 제공해드린 원본 코드에 다음 코드만 추가하시면 됩니다.

    @GetMapping("/add")
    public String addForm(Model model) {
        Item item = new Item();
        item.setItemType(ItemType.BOOK);
        model.addAttribute("item", item);
        return "form/addForm";
    }

감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jfk6725님

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설

링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

jfk6725님의 프로필 이미지
jfk6725
질문자

소스는 mvc2의 라디오버튼 강의 내용과 100% 동일합니다. (테스트 소스를 다른 이유로 지워서 없습니다.)

최초 등록(add) 화면에서 첫 번째 라디오 버튼(부산, 서울, 제주 중에서 부산)을 강제 설정하려고

th:each="type, status: ${itemTypes}" 이렇게 수정하고 (addForm.html 59line)

th:checked="${status.index == 0}" 명령어를 추가해 주었습니다. (addForm.html 60line)

<input type="radio" th:field="*{itemType}" th:value="${type.name}" th:checked="${status.index == 0}" class="form-check-input">

그런데 실행헤서 화면을 보면 첫 번째(부산) 라디오버튼이 강제 설정 되어 있지 않아서 명령어가 잘 못 된 것인지 질문 드렸습니다.

 

제 소스가 없어서 해결이 안되신다면

최초 등록(add) 화면에서 첫 번째 라디오 버튼(부산, 서울, 제주 중에서 부산)을 강제 설정하는 명령어를 작성해 주시면 고맙겠습니다.

 

jfk6725님의 프로필 이미지

작성한 질문수

질문하기