링크 & 리다이렉트

혜준·2024년 5월 22일
post-thumbnail

앞에선 페이지 읽기 기능만을 구현했었는데
이 페이지에서는 페이지를 이동하는 페이지를 만들어보겠습니다

그 기능은 바로 링크 기능인데요

링크는 미리 정해 놓은 요청을 간편히 전송하는 기능, 바로 페이지 이동을 위해 사용

= HTML의 form태그로 작성 , 클라이언트가 링크를 통해 어느 페이지로 이동하겠다고 요청하면 서버는 결과 페이지로 이동


<리다이렉트> - return문으로 정의하기

  • 클라이언트가 보낸 요청을 마친 후 계속해서 요청 주소 재지시하는 경우
    = 분리된 기능을 하나의 연속적 흐름으로 연결할 수 있음
  • 리다이렉트를 받은 클라이언트는 해당 주소로 다시 요청을 보내고 서버는 이에 대한 응답

localhost:8080/articles/new창에서 입력을 받아서

  • 이렇게 이동하는 개념이 바로 리다이렉트 개념입니다.
    = 클라이언트의 요청을 받아 새로운 URL주소로 재요청하라고 지시
  @PostMapping("articles/create")
  
    public String createArticle(ArticleForm form) {
        // System.out.println(form.toString());
        log.info(form.toString());
        //1. dto를 엔티티로 변환
        Article article = form.toEntity();
        log.info(article.toString());
        // System.out.println(article.toString());

        // 2. 엔티티를 레포지터리로 db에 저장
        Article saved = articleRepository.save(article);
        System.out.println(saved.toString());

        return "redirect:/articles/" + saved.getId(); 
        //리다이렉트를 작성할 위치
    }

숫자로 ID조회하기

 @GetMapping("/articles/{id}")
    public String show(@PathVariable Long id, Model model) {
        log.info("id = " + id);
        //1. id 조회해 데이터 가져오기
        Article articleEntity = articleRepository.findById(id).orElse(null);
        // 2. 모델에 데이터 등록 -> MVC패턴에 따라 조회한 데이터를 뷰 페이지에서 사용하기 위함
        model.addAttribute("article", articleEntity);
        // 3. 뷰 페이지 반환
        return "articles/show";
    }
  • 뷰페이지에 링크 걸기
profile
성장을 추구하는 개발자 입니다 :)

0개의 댓글