반응형
Spring Tool Suite 4
addAttribute을 이용하여 타임리프로 html에 변수를 전달하고, 전달된 변수에 따라 라디오 버튼의 초기값을 설정하는 코드이다.
th:if 도 써보고 #string. 등 다양한거 써봤지만
드디어 헤매다 성공
HTML의 mode == 'Atest' 와 같은 코드일때는 라디오버튼이 다 참이였음 (라디오 특성상 체크는 1곳만이라 마지막 라디오버튼이 체크됨)
mode.toString() 으로 아무튼해결
코드가 환경에 따라서도 많이 바뀌려나 다른사람들도 되는 코드를 올렸을텐데 나는 왜 안되었는지는 모르겠음.
Contorller.java
- "mode"에 값을 전달한다.
- settingConfig.getMode()는 내가 전달할 값(Atest or Btest)
@GetMapping("/setting")
public String setting(Model model) {
model.addAttribute("mode", settingConfig.getMode());
return "setting";
}
setting.html
- th:attr : 속성 추가하기
- 컨트롤러에서 "mode"로 전달하였으니 String문법을 이용하여 문자열을 비교(toString())
- 삼항연산자를 사용하여 전달된 값에 따라 라디오 checked 설정
- name="mode" 를 설정한건 라디오버튼 특징 상, 둘다 선택되지 않게 하기위해서는 라디오버튼을 하나의 name으로 묶어야함. (mode 대신 다른 용어를 써도 무방)
name 속성 제거시, 라디오 버튼이 중복으로 check 됨.
<!doctype html>
<html lang="en" xmlns:th="https://www.thymeleaf.org">
<head>
.
.
</head>
<body>
.
.
(생략)
.
.
<div data-toggle="buttons" class="btn-group" role="group">
<label class="btn mb-2 col-md-5 btn-light" style="">
<input type="radio" name="mode" th:attr="checked=${mode.toString() == 'Atest' ? 'true' : 'false'}" autocomplete="off">Atest
</label>
<label class="btn mb-2 col-md-5 btn-light" style="" >
<input type="radio" name="mode" th:attr="checked=${mode.toString() == 'Btest' ? 'true' : 'false'}" autocomplete="off">Btest
</label>
</div>
</body>
th:attr=~~~ 만 적용하면 된다. 이제 설정된값 ajax로 컨트롤러에 넘기기해야겠다.
타임리프로 라디오버튼 Check 하기 끝
728x90
반응형
'개발아닌개발 > springboot' 카테고리의 다른 글
[오류] Maria DB 한글 insert 안됨 인코딩변경방법(UTF-8) : Incorrect string value: '\xEC\x95\x88\x85\x95....' for column ~ (0) | 2023.05.24 |
---|---|
라디오 설정값 가져와서 Class 속성 추가하기 (0) | 2022.01.12 |
Autowired 안 될때 Bean 주입받아 해결하기(autowired Class is null 문제해결) (0) | 2022.01.10 |
간단하게 Height 100%로 PDF viewer 만들기(PDFObject) (0) | 2022.01.05 |
SpringSecurity 패스워드 암호화 대신 sha512 사용하여 로그인 (0) | 2021.12.15 |
댓글