반응형
- 나의 상황
: controller 에서 entity 를 조회해서 값 내려주던걸 vo로 변환하여 내려주는 걸로 변경하는 중 만난 에러.. db에 데이터가 없는 경우에만 에러 발생.
- 에러 발생 위치
<input type="text" th:value="${sysInfo.fqdn}" name="fqdn"/>
- 원인
: sysInfo 객체가 null 이어서 sysInfo.fqdn 을 조회할 수 없어서 발생하는 에러.
- 해결 방법
1. controller 에서 해결 : 조회해온 데이터가 없는 경우 빈 객체를 선언해서 넘겨준다. 이러면 화면에서는 객체가 null 이 아니니까 thymeleaf 수정 없이 해결 가능.
//controller
SysInfo sysInfo = sysService.getSysInfo();
if(sysInfo != null){
model.addAttribute("sysInfo", sysInfo);
}else{
model.addAttribute("sysInfo", new SysInfo());
}
2. thymeleaf 에서 해결
1. 조건에 null 이 아닌 경우만 조회하도록.
<input type="text" th:value="${sysInfo != null ? sysInfo.fqdn : null}" name="fqdn"/>
2. '?' operator 사용. ?를 사용하면 null 이 아닌 경우에만 해당 값을 조회해옴
<input type="text" th:value="${sysInfo?.fqdn}" name="fqdn"/>
반응형
'개발 > Thymeleaf' 카테고리의 다른 글
Thymeleaf 에서 html의 name, id, value 속성 자동 부여 (th:object, th:field) (1) | 2022.09.27 |
---|