본문 바로가기

SPRING

[Spring Boot] 상품추가기능 만들기 MAP

1. 상품 이름, 가격 작성할수있는 페이지를 폼으로 만들기

write.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href=" /main.css" rel="stylesheet">
</head>
<body>

<form action="/add" method="post">
    <input name="title">
    <!--input은 name 속성이 있어야 서버로 전송 가능 -->
    <input name="price">
    <button type="submit">전송</button>
    <!--button은 type 속성이 submit이여야 서버로 전송 가능 -->
</form>

</body>
</html>

 

2. write.html로 접속할수있는 API 만들어주기. /write

ItemComtroller

@GetMapping("/write")
String write(){

    return "write.html";

}

 

 

3.전송버튼을 누르면 서버로 데이터 보내기.

사용자가 보낸 정보를 서버로 받고싶으면?

POST method요청으로 날리면 서버로 데이터 전송 가능. 

form태그에 action "/URL" method = "POST"붙이면

input에 입력한 값들이  name속성을 key로 잘 날라감 

<form action="/add" method="post">

 

4./URL을 통해 데이터를 받을 서버API 만들기 

tip! URL작명시 명사가 좋음 (관습)

 

파라미터로 input name속성들을 잘 써주면 됨. 
타입명은 그 타입으로 바꿔달라는뜻으로 쓰는것임. 
예를들어 price를 String으로 받고싶으면 String price라고 적으면 됨
원래는 파라미터에 @RequstParam(name="title")이렇게 적어야하는데
우리는 초기설정에서 파라미터 생략하는걸 설정했기때문에 안써도 작동가능한것임. 

(ajax로 데이터전송하려면 @RequestBody써야함 )

 

(인텔리제이 행 복사 :  컨트롤 + d)

특정페이지로 돌아가게 만드는법 = redirect:/주소

 @PostMapping("/add")
    String addPost(@RequestParam String title,
    				@RequestParam int price){
                    
        System.out.println(title);
        System.out.println(price);

        return "redirect:/list";

    }

 

 

실행

실행결과

 

 

 

 

MAP

 

한 변수에 유저가 보낸 모든 데이터 변환할때 

MAP 자료형쓰기.

    @PostMapping("/add")
    String addPost(@RequestParam Map formData){

 

 

 

 

MAP 자료형으로 데이터 저장하기.

 

        Map<key의 타입,value의 타입 > test = new HashMap<>();

value에 문자나 숫자 등 다양한 타입을 받으려면 object 

 

map은 key,value 형식으로 값을 저장함

.put("저장할이름",데이터);

즉 저장할 이름은 key

데이터는 value

 

 

        Map<String,Object > test = new HashMap<>();
           test.put("name","이");
           test.put("age",20);

 

 

참고로 한개의 값만 빼오고 싶을때

System.out.println(test.get("name"));

이런식으로  .get(key) 해주면 key에 해당하는 값만 가져옴