SpringBoot

    [SpringBoot] ModelAndView.addObject 의 기본 이름 부여

    잘 알다싶이 MVC에서 ModelAndView를 사용할 때 addObject 메서드에는 두가지 종류가 있다. 첫번째 String을 넣어주는 메서드는 모델에 전달할 Object의 이름을 정해주기 때문에 그 이름으로 thymeleaf에서 사용하면 되지만 두번째 Object만 넣어주는 메서드는 자동으로 이름을 지정해준다. 그런데 아래와 같은 상황에서 조금 혼동이 발생했다. @GetMapping("/jpa/board/{boardIdx}") public ModelAndView openBoardIdx(@PathVariable("boardIdx") int boardIdx) throws Exception { ModelAndView mv = new ModelAndView("board/jpaBoardDetail"); Bo..

    [SpringBoot] 파일 다운로드의 두 가지 방법

    이번시간에는 SpringBoot에서 파일을 다운로드하게 하는 컨트롤러 작성법에 대해 알아보겠다. 우선 기본 배경은 이러하다. 1. 파일의 정보를 담은 데이터 베이스를 가지고 있고, 그 정보에 나온 로컬 디렉토리에 파일이 저장되어있다. 2. a태그를 이용해서 링크를 만들었고 파라미터에 idx와 boardIdx를 담아서 준다 🔼 thymeleaf를 이용해서 html을 작성함 hype 투명_대지 1.png (259 kb) hype 투명_대지 1_대지 1.png (239 kb) hype 투명_대지 1_대지 1_대지 1.png (205 kb) flush -> close 과정을 통해 전송한다. 첫번째 방법 Content-Disposition: attachment; filename="IMG_1745.JPG" Acce..

    갑작스러운 데이터 베이스 연결 오류

    더보기 > Task :MyFirstProjectApplication.main() 15:39:06.575 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@33837d80 15:39:06,461 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 15:39:06,462 |-INFO in ch..

    [SpringBoot] Thymeleaf 반복문 첫번째 요소만 다르게 하기

    부트 스트랩에서 위와 같은 요소를 복붙 하려고 한다. 소스 코드를 보면 First slide label Some representative placeholder content for the first slide. Second slide label Some representative placeholder content for the second slide. Third slide label Some representative placeholder content for the third slide. Previous Next 위의 반복 코드 부분을 thymeleaf의 반복문으로 생성하려고 했다. 안의 이미지 속성들을 각 요소의 값으로 채우면서 말이다. 그런데 문제가 있다. 보면 첫번째 요소만 class 속성에 ..

    [SpringBoot] 웹에 이미지를 표시하는 두가지 방법

    우선 도움을 준 두개의 사이트에 감사를 표한다. 더보기 https://velog.io/@als904204/thymeleaf-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EA%B2%BD%EB%A1%9C thymeleaf 이미지 경로 예시resources/static/img/logo_small.png velog.io https://velog.io/@als904204/thymeleaf-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EA%B2%BD%EB%A1%9C thymeleaf 이미지 경로 예시resources/static/img/logo_small.png velog.io 1. ResponseBody로 자바 객체 반환 이 방법은 우선 안의 src 속성을 매핑하는 컨트롤러를 만들어서 객체를 반환해..

    [SpringBoot] 로컬 파일 저장과 DB를 같이 트랜잭션 시키기

    @Transactional public List insertBoard(BoardDto boardDto, MemberDto loginMember, MultipartHttpServletRequest multipartHttpServletRequest) throws Exception { //board insert log.debug("board insert"); boardDto.setCreatorName(loginMember.getName()); boardDto.setCreatorId(loginMember.getLoginId()); boardMapper.insertBoard(boardDto); //file insert log.debug("file insert"); List list = fileUtils.parse..

    [SpringBoot] @Transactional 의도적 에러 발생시키기

    @Transactional public List insertBoard(BoardDto boardDto, MemberDto loginMember, MultipartHttpServletRequest multipartHttpServletRequest) throws Exception { //board insert log.debug("board insert"); boardDto.setCreatorName(loginMember.getName()); boardDto.setCreatorId(loginMember.getLoginId()); boardMapper.insertBoard(boardDto); //file insert log.debug("file insert"); List list = fileUtils.parse..

    [Interceptor] 인터셉터를 통한 로그인 체크 / 접근 관리

    서론 : 인터셉터를 사용하게 된 계기 (더보기를 눌러서 볼 수있습니다) 더보기 게시판을 만들다가 다음과 같은 문제점이 발생했다. 코드의 무한 중복 @GetMapping("/board/openBoardDetail") public String boardDetail(@SessionAttribute(name = SessionConstants.LOGIN_MEMBER,required = false)MemberDto loginMember,@RequestParam("board_idx") int boardIdx,Model model) throws Exception{ //로그인 된 유저가 접근하는지 확인 if (loginMember == null){ return "redirect:/"; } //게시글 상세 내용 가져오기 ..