Spring Framework _ 4

ayleen·2022년 1월 14일
0

프로젝트 실행 시 게시판 페이지로 바로 연결하기



Servers > web.xml에 맨 아랫쪽을 보면 첫 페이지를 지정해 놓은 것을 볼 수 있다.
프로젝트를 실행하면 자동으로 index.html/index.htm/index.jsp 셋 중 하나로 연결된다.
그래서 webapp안에다가 index.jsp를 만들어 주었다.(다른 jsp들처럼 WEB-INF안에 만들면 못찾아간다.)

만들어준 index.jsp에서 바로 게시판을 찾아갈 수 있도록 jsp:액션태그를 붙여주었다.



제목에 링크걸어서 게시글 상세보기


제목을 클릭하면 게시글이 나오도록 쿼리스트링 형태로 글번호를 보내준다.

두 가지 방법이 있다.
1번

2번

▼ 두번째로 값을 전송해주면 어떤값인지 보이지 않는다.



파라미터 이름이 같다면 자동으로 값을 받아온다.
넘어올때 문자열로 넘어오지만 받는 값이 int니까 Spring이 자동으로 형태를 바꿔준다.
만약 파라미터 이름을 다르게 받고싶다면 아래처럼 쓰면 된다. ↓

만약 위에서 쿼리스트링을 2번방식으로 보내줬다면 아래처럼 받아주면 된다.


mapper에 메서드를 생성해주고 sql문을 만들어준다.



파라미터 타입이 한 개일 때에는 생략가능하다.(parameterType)


컨트롤러에 객체바인딩 해준다.


다른 페이지에 전해 줄 필요 없이 한 페이지에서만 띄울거기때문에 session에 저장하지 않고 request로 보내준다.

기존에 HttpServletRequest request로 사용했지만 Spring에서는 Model로 사용한다.


게시글을 보여줄 jsp생성


컨트롤러에서는 request대신에 Model을 사용했지만 jsp에는 model이 없기 때문에 request로 model을 받는다.

작성시에 개행한 부분은 그냥 불러오면 나오지 않는다.
-> 작성시에는 '\n'이지만 DB에 저장된 것을 불러오면 웹에서는 줄바꿈의 의미가 아니기 때문에.
->
로 바꿔줘야한다.

작성일자도 날짜+시간이 같이 나오기 때문에 공백을 기준으로 쪼개주고 앞 부분만 가져온다.



게시글 삭제하기


삭제버튼에 onclick속성을 주고 함수를 만들어서 삭제 기능을 할 수 있도록 만들어준다.
함수안에 변수는 삭제하는 해당 게시글 번호를 넣어준다.

함수를 만들어준다.
함수를 만들 때 쿼리스트링 역시 두 가지 방법으로 만들 수 있다.


SQL문 작성

위에서는 메서드를 만들어주고 Mapper.xml에서 따로 SQL문을 작성해주었지만 간단한 SQL문은 어노테이션으로 바로 작성이 가능하다.
둘 중 하나의 방법만 사용해야한다. 양쪽에 모두 문장을 만들어주면 충돌한다.



게시글 수정하기


먼저 수정할 글을 수정 페이지에 불러오도록 만들어 준다.

수정하기 버튼에 onclick속성을 주고 함수를 만들어준다.

컨트롤러에 메서드 만들기

@RequestMapping

GET/POST 방식에 따라서 경로 하나로 다른 메서드에서 받을 수 있다.
value : url
method : GET/POST

여기서는 수정화면을 받아야 하니까 GET방식으로 만들어준다.

업데이트 화면에서 기존 내용이 input태그와 textarea태그안에 입력되어있도록 input은 value값으로 textarea는 태그 사이에 내용을 불러와준다.

이 때, 작성자는 수정할 수 없도록 readonly="readonly"속성을 붙여준다.

어떤 글을 수정하는지 알 수있도록 번호를 넘겨줘야하는데, 사용자에게 보이지 않도록 hidden속성으로 번호를 알려준다.

이제 수정 된 내용을 다시 DB에 저장할 수 있도록 만들어준다.
이번에는 POST방식으로 메서드를 만든다.
같은 경로로 받되, 메서드 이름과 전달 방법만 다르게 만들어주면 된다.

Mapper 메서드를 만들고 SQL문도 작성해주면 끝이다.




profile
asdf

5개의 댓글

comment-user-thumbnail
2022년 1월 16일
  1. WEB-INF안에 만들면 못찾아가는 이유는?
2개의 답글