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

작성자 없음

작성자 정보가 삭제된 글입니다.

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

Bean Validation - HTTP 메시지 컨버터

실무에서 어떻게 사용하는지 질문입니다.

작성

·

440

0

package hello.itemservice.web.validation;

import hello.itemservice.domain.item.Item;
import hello.itemservice.domain.item.ItemRepository;
import hello.itemservice.domain.item.SaveCheck;
import hello.itemservice.domain.item.UpdateCheck;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

@Slf4j
@Controller
@RequestMapping("/validation/v3/items")
@RequiredArgsConstructor
public class ValidationItemControllerV3 {

    private final ItemRepository itemRepository;

    @GetMapping("/{itemId}")
    public String item(@PathVariable long itemId, Model model) {
        Item item = itemRepository.findById(itemId);
        model.addAttribute("item", item);
        return "validation/v3/item";
    }

    @GetMapping("/add")
    public String addForm(Model model) {
        model.addAttribute("item", new Item());
        return "validation/v3/addForm";
    }

클래스단의 리퀘스트 맵 마지막에 / 를 붙이는 것과 안 붙이는 것중 뭐가 정석인가요?

클래스단에서

@RequestMapping("/validation/v3/items/")

이렇게 한다면 메소드에는 전부 /를 빼고 add ,get 만 사용하면 될텐데 뭐가 암묵적인 룰(?) 인 것일까요 ?

답변 1

0

안녕하세요. hjemsti님, 공식 서포터즈 OMG입니다.
.

아래 글 답변 참고해주세요:)

https://www.inflearn.com/questions/455919

저의 경우도 강의에서 영한님이 작성하시고 코드 샘플로 올리신것처럼 끝에 /가 없는 형태를 많이 보았고 사용중입니다.
.
감사합니다.

@RequestMapping 과 return 의 템플릿 경로 모두 보정작업을 통해 / 는 있는 경우, 없는 경우 내부적으로 해결해해준다.

@RequestMapping의 경우 맨 앞에 /가 붙은 값이 최종 값이고, return의 템플릿 경우 prefix 마지막에 / 가 붙어있다. 따라서 정답은 없고 편리한대로 사용하면 되지만 영한님과 OMG님은 끝에 / 가 없는 형태를 많이 봤기 때문에 그렇게 사용중이다. << 이게 옳게 이해한 것 일까요?

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기