본문 바로가기

web/Spring

(19)
Springboot h2 초기 세팅 (연결 ~ 테스트) 0. 프로젝트 생성 -> dependencies 설정되고있도록 일단 프로젝트의 build.gradle 로드 0-2. application.properties -> application.yml로 변경 git ignore에 *.yml 등록(안하면 db 털림) git add . git commit -"프로젝트 생성" git push yml이 git에 올라가지 않은 것 확인 *여기서 static이 안들어간건 걱정 ㄴㄴ 폴더 안ㅇ ㅔ파일이 없어서 그럼 H2 세팅 1. 데스크탑 h2 위치 C:\my2023programs\H2\bin 2. h2.bat 실행 3. url의 ip주소를 localhost로 변경 (이 방법으로 안 되면 그냥 안 바꾸고 ip로 시도) 4. JDBC URL 변경 jdbc:h2:C:\my2023..
@RestController = @ResponseBody + @Controller @Controller 대신 @RestController 사용하면 모든 메소드에 responsebody 걸려있는것과 같음
@RequestParam @RequestBody @ModelAttribute 초간단 정리 데이터 받는 방법 Setter 객체바인딩 주 용도 RequestParam url 뒤에 파라미터 Setter와 관계없음 불가능. 하나의 파라미터와 하나의 변수 바인딩하는 용도 url 파라미터를 객체화 하지 않고 쓸 때 RequestBody application/json (주로 ajax 요청) 없어도됨 가능 #json데이터 처리 (ajax json 요청 등) 1. 객체화 해도 되고 2. 객체 없이 Map 쌍으로 받기 가능 ModelAttribute multipart/form-data (queryString, form) 있어야함 가능 1. url파라미터를 객체화 할 때 2. form 데이터를 객체화 할 때 @RequestBody의 경우 add와 같이 객체에 넣을 수도 있지만, add2와 같이 Map에 넣을 수..
form -> server ->form 할 때 form 데이터 유지하고 싶다면 server에서 @ModelAttribute를 사용하자 1. form에서 server로 데이터 전송 2. @ModelAttribute 사용 시 @PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { Item item이 model에 저절로 들어간다 즉, model.addAttribute("itemAttr1":itemattr1) 이 자동으로 타이핑 되는 셈이다 *참고로 이 때, 해당 메소드에 Model이 없어도 된다!
타임리프 메세지 국제화 # 세팅 resources/application.properties #국제화 경로설정시 아래 폼 #spring.messages.basename=messages,config.i18n.messages #국제화 default spring.messages.basename=messages messages.properties hello=안녕 hello.name=안녕 {0} label.item=상품 label.item.id=상품 ID label.item.itemName=상품명 label.item.price=가격 label.item.quantity=수량 page.items=상품 목록 page.item=상품 상세 page.addItem=상품 등록 page.updateItem=상품 수정 page.saveComplete=저..
intelliJ Spring properties의 국제화 작업 중 한글 인코딩 안됨 문제 아래 세 개 UTF-8로 변경 File >> Settings >> Editor >> File Encodings >> Global File >> Settings >> Editor >> File Encodings >> Project Encoding File >> Settings >> Editor >> File Encodings >> Properties File 캐시 리셋 File >> Invaildate Caches >> Reset 인텔리제이 재시작 properties 파일 내용 바뀐 것 있으면 바로잡고 되나 테스트 그래도 안되면 File >> Settings >> Editor >> File Encodings >> Transparent native-to-ascii conversion 체크 properties..
form의 elements를 객체에 바로 바인딩 @ModelAttribute @PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes) { 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.addAttr..
redirect시 attribute 전송 RedirectAttributes redirectAttributes 리디렉트시 attribute 전송(파라미터 노출되지 않음) #사용 예시 @PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes) { log.info("item.open={}",item.getOpen()); log.info("item.regions={}", item.getRegions()); log.info("item.itemType={}", item.getItemType()); Item savedItem = itemRepository.save(item); redirectAttributes.addAttr..