상세 컨텐츠

본문 제목

74일 - tiles.xml에 preparer 기능 넣어 '디폴트값' 넣어주기 (with 'request에 값이 없을 때에만 되도록 조건문')

수업 일지/Spring

by NayC 2021. 6. 4. 14:36

본문

728x90

서버 껐다 키면.. 껐다 켜도 ${title}로 나옴

근데 에러가 남 (null)

이렇게 추가해주면

나온다.

 

// 근데 나오는거로 기뻐해서는 안 됨.

 

Q. 다... 이렇게 title 넣어줘야 하나? 

-> 기본값 설정을 알아보도록 하자 

ex) detail 페이지에서도 title 이렇게 넣어줘야 하나... 

-> list 페이지에서 글 클릭해서 detail 들어가면 title null이라고 오류 남

 

ex) header에! 데이터 주면서 달아준다고 하면 

근데 이 데이터가 '계속' 유지되려면 

detial, edit 페이지 등에서 저 데이터를 다 심어줘야... 

 

이렇게 사용하지 않는다! 

 

컨트롤러에서 처리하지 않고, '미리' 처리하는게 있음

 

선행자에서 모델 심으면 

- 거기서 사용 가능 

- 그리고 '덮어쓰기'도 가능

 

만들어보잣

 

preparer 위치 꼭 8번째줄에만 있어야 하는거 아님. (기능을 이해하면서 보기)

새로 만들어주기
컨트롤 + 스페이스 누르면 함수 저절로 호출됨
그리고 tiles.xml에 패키지하고 클래스명 넣어주기

main이 아닌 영역을 위한건 이렇게 한 번만 마련해주면 됨

 

L

이건 지금 Spring이 사용하는게 아님

tiles가 사용하는거 

Spring이 쓸게 아님. 그래서 @ 안해주는거

 

R의 tiles가 호출하는 것

14번째줄도 tiles 방식의 호출 방법. model은 그냥 이름 명칭한 것 (출력할 데이터를 model이라고 그냥 한 것)

 

//

 

 이제 하나 남았다. 

 

기본값 title이 지금 '뉴렉처 온라인'이 되는 것

Q. 디테일 페이지에서는 글의 제목을 위에 띄우고 싶다면? 

 

근데 NoticeController에서 값을 바꿔도 안 바뀜

애가 이전에 되어서 

request가 먼저. preparer가 뒤에.

- 그래서 빈 문자열을 담음으로서, 그냥 title이 설정되어있구나~를 알려주는 정도가 되는 것

 

빈문자열 담아줌...이 아니라

title은 박아두고 쓰는 것 !!! 

 

 

 

//

 

layout.jsp 가보자

필요하면 title 담는 것

 

정리 : preparer을 title 사용을 위한 거로 생각하지 말기!!!!! 

 

59번재 주석 처리 풀면 

//

 

지금 우리는 header에서 처리해줚는데... model이 가지고 오는게 있어서 다른 방법으로 해보자.

굳이 layout.jsp에서 R처럼 할 필요 없다. 

 

 

위에 3개는 다 같은 식

- 형변환 해준거

 

최종 코드!

 

//

 

aside, header, footer 에 들어있는 내용도 마련해줘야 하잖아.

request Context에 data를 넣어준다는? 

 

타일즈가 request에 담겨진 데이터를 Map으로 꺼내준거

preparer에서 사용 가능

거기에다가 내가 키를 다시 심을 때는 덮어쓰기되거나 심을 수 있음 (이거 순서... request가 먼저라고 아까 하지 않으셨나 ㅠㅠ) 

-> 바꿔서 view 단에 전달할 수 있다. 

 

 

R 요지는 꺼내준 그릇이 map이라는 것

이 코드 순서를 알아보자.

 

25번재줄. if 문 적어줌으로서 덮어씌어주는것을 해결

먼저 request > preparer 

- 꼭 request가 먼저라는게 아니라~~ 여기에 갚이 있으면 덮어씌어주지 말자는 맥락으로 이해!!

 

cf) request

- key, value를 같이 담을 수 있는 그릇 = map

- map으로 반환된걸 지금 model이란 이름으로 쓰는거  (즉, request가 담아놓은 값을 꺼내는 그릇으로! model이 map을 쓰고 있었다.)

- request가 가지고 있는게 map인지 아닌지는 모르는 것. 담은 그릇을! map으로 한 것

 

 

 

 

 

//

 

지금은 그냥 데이너를 넣었는데 추후 DI 하면서 더 발전시켜보잣.

그리고 다음 시간은 JDBC 대신 작성하는 대신에! 사용하는걸 알아보자.

- jdbc 작성할 필요없음 ㅎㅎ 이제 한 줄로 끝난다 :) ~~ 

 

 

 

 

 

cf) 타임리프 자체적으로 레이아웃 만드는 능력이 있다. (지금 우리는 jsp, tiles 이용 중)

- 그래서 tiles 익숙해지는 시간 많이 가질 필요 x (우선 이해만) 

 

월요일) mySql 설치. (리눅스에 하는게 좋다고 하긴 함. 리눅스/유닉스 꼭 공부하라고 하심)

- 24시간 꺼지지 않는 컴퓨터가 있어야 서비스 가능? (그래서 월요일에 선생님의 꺼지지 않는 8대 컴퓨터를 사용할 것인지 말씀 드리기) - 제품 ECS 시리즈? 추천 (처음은 fan없이 조용한 ㅎㅎ 20만원대로) 

- "계속 숙달하면서 익숙해지세요."

 

- 맥을 쓰라고 주장하셨다고... (맥이 유닉스라서) 

  맥을 꼭 쓰지는 않더라도 window에 가상머신 깔아서라도 배우기

  hyper v?라는게 있음 (가상머신 설치 가능) - 리눅스 기반으로 사용 가능

- ms 마켓 가면 ubuntu 다운?

- 그리고 shell에 설치하는 것을 추천

  

728x90
반응형

관련글 더보기