📅 2024-02-01, 39일차
TODO
[추가로 한 것]
[프로그래머스]
[Spring_AM]
강의다시보고 로직이해하기
- 작업 38, JSP로 Article List 구현, jstl 설정 (90%)
- 작업 39, 공통 css, js 적용, head,foot.jspf 적용, 폰트 적용 (90%)
- 작업 40, 레이아웃 수정 및 폰트 변경 (0% 주말로 미룸)
- 작업 41, 상세페이지 구현 (95%)
- 작업 42, 상세페이지에 수정,삭제 버튼 추가 (95%)
- 작업 43, user가 해당 게시물을 수정할 수 있는지 여부에 따라서 버튼 표시를 판단 (70%)
- 작업 44, user가 해당 게시물을 삭제할 수 있는지 여부에 따라서 버튼 표시를 판단, doDelete 방식 수정 (70%)
[나중에 할 것 ]
- 깃허브 클론
- 눈누 <폰트적용>사이트
- 뤼튼 / chatgpt
- 작업 40 다시보기
- 프롬프트 지니 (ChatGPT 자동 번역기) -> 필요하면 설치
JSTL (JSP Standard Tag Library)
- JSP의 기본 태그가 아닌, JSP 확장태그
- 반복, 조건 로직이나 formatting 작업, XML문서, SQL 태그의 조작을 위한 HTML태그에 사용됨
<c:forEach var="article" items="${articles }">
${article.id}
</c:forEach>
- '자바의 articles 리스트 요소의 갯수만은 반복순회하면서 article이라는 변수에 담고, article.id를 다 보여주겠다' 라는 의미
- 자바 for-each HTML버전같다
Spring Model 객체
- Controller의 메서드는 Model 타입의 객체를 파라미터로 받을 수 있음
- JSP Servlet으로 웹 어플리케이션을 만들 때 보통 request나 session 내장객체에 정보를 담아 jsp에 넘겨줬지만, Spring에서는 Model을 사용
- Model의 .addAttribute()를 통해 view에 전달할 데이터를 저장
- Servlet의 request.setAttribute()와 비슷한 역할
- 스프링이 지원하는 기능으로써, key와 value로 이루어져있는 HashMap
JSP 화면구성(list, detail), 수정/삭제 권한
요구사항
게시물 리스트 o
상세페이지 제작 o
- 작성자의 이름(닉네임표시) o
- 수정/삭제버튼 추가 o
- 클릭으로 수정/삭제 처리 x
- 로그인 o
- 로그아웃 o
내 생각의 흐름
수정/삭제버튼
- 권한이 있을 때만 버튼 표시
- session정보를 jsp로 보내야하지않나?
로그인
- 로그인 아이디 비번 입력 하면
어디에 입력? 당장 입력하는 칸을 만들지 않았으니 기존에 했던거처럼
url에 파라미터로 적어주기 o
입력 후 home/main으로 돌아가게 해주기 -> o
- 클래스를 String으로 바꾼 후 빨간줄 뜨는거 다 주석 처리해버리니까 중복로그인이나 비밀번호 틀려도 로그인이 가능해짐;;;
- 빨간줄 뜨는것들의 리턴을 String값으로 바꿔주니 기능도 잘 됨!
- "이미로그인상태입니다" 기능만 디폴트처럼 작동 함. 다른 에러는 안나오네..
- 일단.... "이미로그인상태입니다" 주석처리하니까 다른 건 잘 됨 ㅋㅋㅋ
로그아웃
- 로그아웃 버튼도 마찬가지로 클릭하면 home/main으로 돌아가게해주기o