스프링 347

5. thymeleaf url

URL 링크 basic url hello query param path variable path variable + query parameter @GetMapping("/link") public String link(Model model){ model.addAttribute("param1", "data1"); model.addAttribute("param2", "data2"); return "basic/link"; } 일단 동적 템플릿에 넘길 때, param1이라는 키로 data1이라는 문자열값을, param2는 data2라는 문자열 값을 줬다. 저기 보면, 일단 타임리프에서 링크 표현할때는 "@{/hello}" 이렇게 표현한다. @{/hello} 이건 절대경로 @{hello} 이건 상대경로다. 예를 들..

1. 타임리프 text escaped, unescaped

@Controller @RequestMapping("/basic") public class BasicController { @GetMapping("/text-basic") public String textBasic(Model model){ model.addAttribute("data","Hello Spring!"); return "basic/text-basic"; } @GetMapping("/text-unescaped") public String textUnescaped(Model model){ model.addAttribute("data","Hello Spring!"); return "basic/text-unescaped"; } } 간단하게 basic은 model에 data라는 키로 문자열을 담아서 넘..

54. 타임리프 템플릿

타임리프는 기존 것을 대체하는 식이다. 없으면 html 그대로 출력된다. 그래서 그냥 html문서로 열어도 되긴 된다. 단, 타임리프는 자바가 실행시켜주는 것 이므로 타임리프로 대체는 할 수 없다. 상품 목록 상품 등록 ID 상품명 가격 수량 상품ID 상품이름 가격 수량 만약 th:text="${item.id}">상품ID 여기서 item.id에 대한 정보가 없으면 그냥 상품ID라고 나오고, 있으면 저 item.id가 대체되어 출력된다. 참고로 타임리프는 자바측에서 실행시켜주는거다. view.render()할 때 실행시켜주는 듯. time.id는 프로퍼티 접근법이다. 저거 쓰면 time.getId()를 해주는 거다. @{~~~} 이것이 url 링크 표현식이다. 이것도 url상의 /css/bootstrap...

51. 요청 파라미터 및 메시지바디의 데이터 정리

요청으로 데이터 보내는 것은 크게 3가지 GET의 url 쿼리 파라미터 POST html form 파라미터 (메시지바디에 들어가서 보내짐.) HTTP API 메시지바디의 데이터 @RequestParam("key") 은 GET의 url 쿼리파라미터 POST의 html form 이렇게 딱 두 종류의 경우 가능, @PostMapping("/save") public String save(@RequestParam("username") String username, @RequestParam("age") int age, Model model) { Member member = new Member(username, age); Member savedMember = memberRepository.save(member); m..