Spring

250107 Spring 05 - 2개 이상의 요청을 처리하는 컨트롤러, 동적 SQL 처리

suerte10 2025. 1. 7. 16:29

1. 게시글을 클릭하면 세부내용을 볼 수 있는 기능 작성

1) list.jsp 수정

 

2) PostController.java 수정

 

3) detail.jsp 작성

브라우저에 출력되는 화면

 

 

2. 게시글 수정하기 기능 작성

1) 컨트롤러 메서드 수정

 

2) jsp 작성

3) /webapp/ 하위에 static 폴더 생성 - static 폴더 하위에 js 폴더 생성

 

4) post-modify.js 자바스크립트 파일 작성

 

5) 컨트롤러 파일에 메서드 추가

 

6) update() 메서드에서 사용하기 위한 PostUpdateDto 클래스 생성

 

7) 서비스 수정

 

 

 

3. 게시글 검색 기능 추가

1) list.jsp 수정

 

2) PostSearchDto 클래스 생성

 

3) 컨트롤러에 메서드 추가

 

4) 서비스에 메서드 추가

 

5) DAO에 메서드 추가

 

6) post-mapper.xml에 코드 추가 - MyBatis를 활용해서 동적 SQL 처리하기

* bind 태그 : 파라미터로 전달된 값을 새로운 변수로 만들어 준다.

  (바인딩 파라미터(느낌표로 표시되는 부분)에 채워질 값을 작성할 때 사용된다)

 

 

 

4. 게시글에 댓글 기능 추가하기

1) 데이터베이스에 새로운 테이블 작성

 

2) Comment 클래스(모델 클래스) 작성

 

3) mybatis-config.xml 파일 수정

 

4) comment-mapper.xml 파일 생성

 

5) CommentDao.java 파일 생성

 

6) 단위 테스트

콘솔에 출력되는 화면 중 일부

 

 

 

※ mapper 작성할 때 참고할 점

문자열로 비교하지 않기 때문에 choose 태그에 있는 모든 조건은 false가 리턴된다

 

※ 디스패쳐 서블릿은 기본 생성자로 객체를 생성해놓고 setter로 필드에 값들을 저장하기 때문에 디스패쳐 서블릿을 사용할 때는 모델 클래스에 기본 생성자가 반드시 있어야 한다.