| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- @Valid
- 의존주입
- c:if
- AOP
- Model
- springjdbc
- 비즈니스레이어
- MVC
- 스프링
- .xml
- springmvc
- PointCut
- Java
- SpringBoot
- after-throwing
- 서비스레이어
- frontController
- @
- @RequestMapping
- produces
- 생성자주입
- @RequestParam
- application.properties
- spring
- @ResponseBody
- 바인딩변수
- 어노테이션
- gradle
- 유효성검사
- jointpoint
- Today
- Total
메모장
[ null 업데이트 이슈 ] 본문
간략한 상황 설명

글을 작성하려고 할때 사진 파일을 넣지 않으면 디폴트 사진이 생기게 끔 작업하였다 !
글을 update 하려고 할때 사진을 같이 업데이트 하면 잘 변경되지만
글만 변경하고 사진을 변경하지 않으려고 할 때 기존 사진이 유지되어야 하는데
기본값 사진으로 바뀌는 모습을 발견할 수 있다 ...!
Spring 에서 자주볼 수 있는 이슈
null 이 업데이트에 들어가버렸다.
1) 별도의 이미지를 추가하지 않으면, 해당 name 파라미터에 NULL이 들어감

2) NULL 이 그대로 C-S-DAO-DB 까지 전달됨
controller -> 서비스레이어 -> DAO -> 데이터 베이스 까지 전달 된다 !!
3) NULL 업데이트가 되지않도록 @ 설정을 해볼 수 있다. !!!
혹시 NULL이니 ?
그럼 이전에 불렀던 내용으로 세팅해줄게 라는 어노테이션이 있다.
4) @SessionAttributes
★ 세션 역할 브라우저 종료 되기 전까지 유지
컨트롤러한테 붙이는 설정이다.
@Controller 밑에 붙이기
@SessionAttributes

이전에 불렀던 내용을 알려줘야한다. 이걸 같이 설정해줘야한다.
(같이 설정해줘야 하는 @ 이 존재 ) @ModelAttribute

뷰에 data로 왔었어 ! 커맨드 객체 안에서 vo 가 null 인 애가 있는데
@ModelAttribute("data")BoardVO bVO
이걸 세션이 또 알고 있어야 하니까
@SessionAttributes("data")

뷰의 이름을 알려주는 애는 @ModelAttribute 고
이걸 알아야 하는애는 @SessionAttributes
✔️ 주의사항
너무 많은 등록을 하면 즉, 등록할 데이터가 많아질 수록 요청이 무거워짐
- 검색어 + main.do
- @SessionAttributes + selectOne + update
이렇게 모듈화 하는쪽이 좋다.
ex) 검색 데이터도 저장이 가능한데 , 검색을 apple로 한번 했음
그 다음에 검색창에 검색을 안한다고 했을시 => 전체 데이터 보려고 안한 것
근데 @SessionAttributes 때문에 어? 검색어가 없네 ? apple로 해줄게 ~
null을 만들수 없다는 단점이 있다.
'Spring > 개념정리' 카테고리의 다른 글
| Spring 비동기 처리 에러 이슈 (한글 깨짐,인코딩) (0) | 2024.08.07 |
|---|---|
| Spring 비동기 처리 (별도의 lib 없이) (0) | 2024.08.07 |
| Spring 예외 처리 페이지 (1) | 2024.08.07 |
| @RequestMapping 에서 사용되는 옵션 종류 (0) | 2024.08.07 |
| Spring 사진 썸네일 실습 (0) | 2024.08.07 |