작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
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님은 끝에 / 가 없는 형태를 많이 봤기 때문에 그렇게 사용중이다. << 이게 옳게 이해한 것 일까요?