Spring 23

스프링 - Mybatis 동적 태그

속성과 함께 조건이 true가 되었을 때 태그 내에 있는 SQL을 사용하기 위한 태그이다. (title like '%'||#{keyword}||'%') Java의 if~else과 유사하며, 여러 조건 중 하나만 동작한다.otherwise는 모든 조건에 충족되지 않을 때 실행된다. (title like '%'||#{keyword}||'%') (content like '%'||#{keyword}||'%') (writer like '%'||#{keyword}||'%') , 단독으로 사용할 수 없으며 동적 쿼리를 생성할 때 사용할 수 있다., 등을 내포하여 사용하고 조건에 따라 AND, OR, WH..

Spring 2025.06.14
스프링 - 스프링의 페이지 이동 방식

아래 컨트롤러 예시 코드를 보자.@GetMapping("/register")public void register() {} 실제로 register.jsp를 호출하는 부분이 없음에도주소창에 /register를 입력하면 페이지를 호출한다. 이는 void 리턴타입 메소드와 Mapping 어노테이션을 지정해주면register의 페이지를 매핑하여 자동으로 페이지를 불러와준다. 관련된 코드는 servlet-context.xml에서 확인할 수 있는데, 컨트롤러에서 리턴한 뷰 이름 "register" 를,prefix + "register" + suffix 로 변환해서,최종적으로 /WEB-INF/views/register.jsp 경로의 JSP 파일을 찾아서 렌더링해주는 것이다. 참고로, 리턴 타입을 ..

Spring 2025.06.03
스프링 - Redirect 처리 관련 정보

웹 브라우저와 컨트롤러의 데이터 처리방식은 다음과 같다. 내가 구현한 컨트롤러의 리다이렉트 호출 부분 소스를 참조해보자....@PostMapping("/register")public String register(BoardVO board, RedirectAttributes rttr) { log.info("register : " + board); service.register(board); rttr.addFlashAttribute("result", board.getBno()); return "redirect:/board/list";}... 컨트롤러의 register()에서 "redirect:/board/list"를 전송하고브라우저는 /board/list로 이동하게 되는 방식이다. 이..

Spring 2025.06.03
스프링 - 웹에서 INSERT 할 때 한글 깨짐 문제

웹에서 게시글을 INSERT 후 조회를 할 때 아래처럼 한글이 깨져서 출력되었다. /board/register에서 게시글 등록 후/board/list로 리다이렉트이후 개발자 도구로 확인했을 때 폼 데이터는 정상이었다. 그러나 STS에서 INSERT문 로그 출력 시 한글이 깨지는 오류 확인 해결방법 src > main > webapp > web.xml에 아래 코드를 추가 후 서버를 재시작하면 해결할 수 있다.... encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding ..

Spring 2025.06.03
스프링 - Mybatis Mapper 작성 시 !CDATA에 대한 정보

아래 예시 mapper.xml을 보자. 0 ]]> CDATA를 쓰는 이유는 아래와 같다. xml에서 사용하는 과 SQL에서 사용하는 의 역할이 서로 다르지만하나의 xml 파일에서 관리되기 때문에 파싱 오류가 발생할 수 있다.(xml의 태그와 SQL의 부등호) 즉, mapper.xml에서 CDATA[ ] 안에 있는 내용을문자 내용 그대로 실행되도록 스프링에 알려주는 역할을 맡고 있는 것이다.

Spring 2025.05.25