-
08 게시판 검색 기능 추가하기(2)Spring/03 MyBatis로 게시판 만들기 2023. 7. 23. 14:00반응형
게시판 검색 기능 추가하기(2)
1) 실습
- 게시판 검색 기능 추가하기(1) 2-1) 실습에서 이어진다
BoardServiceImpljava
BoardService.java
- Board 컨트롤러로 가기 전에 page와 pageSize을 SearchCondition.java에 만들어 주었다
(+option ,keyword) 따라서 PageHandler.java를 수정하여 Board 컨틀로러의 List를 변경한다
PageHandler.java(수정)
>> SearchCondition.java에 page와 pageSize을 가지고 있고
추가로 option, keyword의 값을 가지고 있다\
>> 생성자에 doPaging( )호출하게 하였다
>> 이전에 page값을 sc.getPage( )와 sc.getPageSize( )로 가져울 수 있도록 변경하였다
>> 나머지 page와 pageSize getter and setter 삭제
SerachCondition sc의 getter and setter를 추가
sc가 포함된 toString으로 변경(기존 toString삭제)
BoardController.java(변경)
>> BoradController.java에 모든 메서드에
page와 pageSize를 받는 매개변수를 지우고 SerchCondition sc로 변경
BoardController.java(변경 이전)
- SerchCondition sc로 변경되기전 코드 참고용으로 가져왔다
결과 확인
>> boardList.jsp의 querString에서 에러가 발생
SearchCondition.java
>> 검색 결과를 받고 목록으로 돌아 올때
값들을 유지하기 위해 getQueryString( )을 만들었다
>> UriCompoentsBuilder가 UriCompoents를 만들어 준다
>> boardMapper.xml에 offset값을 전달
결과 확인
2) MyBatis의 동적 쿼리 실습
boardMapper.xml(동적 쿼리 수정)
>> test= 이후에는 (“ ”)와 (‘ ’) 둘 다 사용가능
<when>에서 문자열을 사용해야되므로 1차로(‘ ’)으로 묶고 2차로 문자열을 (“ ”)로 묶는다
BoardDaoImplTest.java
>> boardMapper.xml에 동적 쿼리 테스트 진행 결과는 통과하였다
결과 확인
>> 동적 쿼리 변경 결과는 이상없이 잘 출력되었다
3) 문제점
>> 입력란에 <scrpot>alert을 입력하게되면 태그를 인식하여 출력된다
해결 방안
board.jsp
- title 입력란
- content 입력란
boardList.jsp
- title 출력란
>> <c:out value=“ ”/>의 안에 태그</> 명령어는 모두 텍스트로 변환한다
결과 확인
>> 텍스트로 변경되었다 해커나 다른 외부침입을 막을 수 있다
※ 추가로 jsp 버전으로 오류가 발생하는 경우
_rt 로 해결 할 수 있다
board.jsp
boardList.jsp
>> 가끔 버전 불일치로 문제가 발생하면 _rt를 붙이면 해결 된다
반응형'Spring > 03 MyBatis로 게시판 만들기' 카테고리의 다른 글
10 댓글 기능 구현(1) (0) 2023.07.27 09 REST_API와 Ajax (0) 2023.07.25 07 게시판 검색 기능 추가하기(1) (0) 2023.07.21 06 게시판 읽기, 쓰기, 삭제, 수정 기능 구현(2) (0) 2023.07.18 05 게시판 읽기, 쓰기, 삭제, 수정 기능 구현(1) (0) 2023.07.16