/
: 최상위 루트 경로 ./
: 현재 위치의 폴더를 의미../
: 현재 위치의 상단 폴더 <link href="../css/bootstrap.min.css" rel="stylesheet">
@{...}
사용th:href
<th:href="@{/basic/items/{itemId}(itemId=${item.id})}">
<th:href="@{|/basic/items/${item.id}|}">
th:onclick
|location.href='@{...}'|
<button th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|" type="button">
redirect:/...
으로 편리하게 리다이렉트를 지원 @PostMapping("/add")
public String save5(Item item) {
itemRepository.save(item);
return "redirect:/basic/items/" + item.getId();
}
@PathVariable
값은 redirect에도 사용가능 @PostMapping("/{itemId}/edit")
public String editItem(@PathVariable Long itemId, Item item) {
itemRepository.update(itemId, item);
return "redirect:/basic/items/{itemId}";
}
redirect:/basic/items/{itemId}
@PathVariable Long itemId
의 값 그대로 사용RedirectAttributes
를 사용하면 @PathVarialbe
쿼리 파라미터까지도 처리 가능 @PostMapping("/add")
public String save6(Item item, RedirectAttributes redirectAttributes) {
// 객체 Item 저장
Item savedItem = itemRepository.save(item);
// addAttribute() 메서드를 사용하여 전달할 파라미터의 이름과 값을 지정
// 1. 저장된 'Item'객체의 'id'값 사용
redirectAttributes.addAttribute("itemId", savedItem.getId());
// 2. status 파라미터의 값은 true로 지정
redirectAttributes.addAttribute("status", true);
return "redirect:/basic/items/{itemId}";
}
주소값 :
http://localhost:9091/basic/items/4?status=true
- 4 ➡
{itemId}
: pathVariable로 바인딩- ?status=true ➡
redirectAttributes.addAttribute("status", true)
: 쿼리 파라미터로 처리- html에서 사용 가능
<script th:inline="javascript"> /*<![CDATA[*/ if([[${param.status}]]){ alert("저장이 완료 되었습니다."); } /*]]>*/ </script>