인프런 커뮤니티 질문&답변

냐암2님의 프로필 이미지
냐암2

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

html에서 action의 의미

작성

·

24

0

선생님 안녕하세요

 

action의 의미는 입력값을 해당 서버(item.html)로 보내는 것인데 이것의 필요성을 모르겠어서 질문드려봅니다.

두 번째 코드의 return 값을 기존 "redirect:/form/items/{itemId}"에서 "/form/items"으로 바꿔도 문제 없이 동작해서 질문 드려 봅니다.

 

<form action="item.html" th:action th:object="${item}" method="post">
@PostMapping("/add")
    public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes,
    Model model) {

        log.info("item.open={}", item.getOpen());
        log.info("item.regions={}", item.getRegions());
        log.info("item.itemType={}", item.getItemType());

        Item savedItem = itemRepository.save(item);
        redirectAttributes.addAttribute("itemId", savedItem.getId());
        redirectAttributes.addAttribute("status", true);
        //return "redirect:/form/items/{itemId}";
        model.addAttribute("items", itemRepository.findAll());
        return "/form/items";
    }

답변 1

0

안녕하세요. 냐암2님, 공식 서포터즈 y2gcoder입니다.

html form 태그의 action 은 html 에서 해당 폼 데이터를 보낼 서버의 URL을 말합니다 🙂. 그리고 위와 같이 action의 값을 명시적으로 적지 않는다면 해당 폼 데이터를 입력하고 있는 URL과 동일한 URL로 폼데이터를 보내게 됩니다.(HTTP Method는 POST라고 되어있고 후에 첨부해주신 코드를 보니 정확하게는 POST /add 로 이동할 것 같습니다!)

그리고 테스트를 위해 변경해주신 코드는 이미 도착한 서버 내에서의 반환부입니다. action을 테스트하기 위해서는 th:action 값에 다른 값을 추가해서 테스트해보시겠습니까?

그리고 해당 부분을 이해하기 위해서는

  • HTML form 의 action

  • Redirect, 그리고 단순 View 반환의 차이(이 부분은 본 강의를 다시 복습해보시면 좋을 것 같습니다!)

를 한 번 학습해보시면 좋을 것 같습니다 🙂

 

감사합니다.

냐암2님의 프로필 이미지
냐암2
질문자

감사합니다

해당 부분 좀 더 공부해보겠습니다!

냐암2님의 프로필 이미지
냐암2

작성한 질문수

질문하기