상세 컨텐츠

본문 제목

thymeleaf 구현 오류 잡은 것들

본문

728x90

1. VS에서는 html, css 잘 나오던게 스프링 workspace 왔더니 css도 적용 안되고, image도 나오지 않음

45번째줄이 VS에서 다 적어준 경로.

-> 36번째줄처럼 고쳐주면 다시 다 적용된다. 

 

왼쪽 폴더를 보면 알겠지만 'root'를 기준으로 적어준 것을 알 수 있음.

맨 위의 css도 이렇게 경로 수정하면 -> 다시 적용되서 다 나온다. 


2. mapper 각 요소의 정확한 의미

3. model에 받아서 화면에 뿌려지는 것의 정의

지금 이건 정상적으로 나오는 화면인데, 

원래는 'Q. 인생에서 가장 뿌듯했던 순간'이라고 내가 하드코딩해서 넣어준게 나왔었음. 

 


*당시 상황*

"데이터 넣어준 question, answers를 넘겨줬는데 왜 안나오지?!" 라고 생각했었지.... 


 

잘못된 점은 크게 3가지

21, 24번째줄처럼 content를 가지고오는거면 resultType은 그냥 String이 되어야

-> 나는 resultType으로 entity 전체를 다 가지고 왔기 때문에, detail 페이지에서 그냥 ${question}, ${answers}라고만 하면 아래처럼 나오는 것이었음. 

잘못된 예시

이렇게 해줘야! 


지금 html에서는 ${question}, ${answers}인 상태.

그런데 아까랑은 오류가 다름

- 아까는 mapper에서 content만 가지고 온 상태여서 content 외에는 다 null이었던 반면, 

  지금은 * 다 가지고 온 상태여서 null인건 null이지만 content만 null이 아닌건 아님

 

// 

 

보통 content만! 막 이렇게 가지고 오는 것보다는 '다' 가지고 와서 활용하는게 좋으니 mapper에서 * 다 가지고 오는거로 하고 고쳐보자

 

Q. entity 가지고오는걸 백단에서 연결해줬고, view에서도 구체적으로 가지고 와줬는데 왜 오류가 날까?  

 

answer의 경우에는 List 형식으로 보내줬기 때문.

- 즉 url에 만약 내가 ?gid=1로 보내준거에 대해서 (groupQustionId를 명칭한 것) 

  question은 한 개지만, answer는 여러개니까 

  -> answer의 형태는 

이거 print해서 알아보고 싶은데 어케 test하징

-> 그냥 ${answers}를 넣어서 화면 출력해보면되징

 

$answers[0].content 이렇게 되어야 함


4. 화면에 반복문(th:each) 출력이 안 되었던 문제 

 

나는 th:each 반복문을 26번째줄에 넣어서 오류가 났던 것. 

저기 26~29번째줄이 ${a.content}의 개수만큼 반복되는 '몸통'이라서 그 상위에 있는 25번째줄에 넣어줘야 함

 

cf) 27번째줄 이미지는 controller에서 users와 answers를 가지고 있는 view, entity를 새로 만들어줘서 넘겨주기로. 


 

728x90
반응형

관련글 더보기