๋น„๋น„ bibi 2021. 4. 6. 00:18

PUT method

POST๋กœ๋„ ํšŒ์›์ •๋ณด ์ˆ˜์ •์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, PUT ์„ ์‚ฌ์šฉํ•ด ์š”์ฒญ์„ ๋ช…ํ™•ํžˆ ํ•˜๋Š” ๊ฒƒ์ด RestAPI๊ด€์ ์—์„œ ๋” ๋ฐ”๋žŒ์งํ•˜๋‹ค.

POST ๋Œ€์‹  PUT method๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ˆ˜์ • ํ™”๋ฉด(updateForm.html)์—์„œ ์ˆ˜์ •๋œ ๊ฐ’์„ ์ „์†กํ•  ๋•Œ PUT๊ฐ’์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด hidden์œผ๋กœ ์ „์†กํ•œ๋‹ค.

    • <input type="hidden" name="_method" value="PUT" /> ์„ form ์—ฌ๋Š” ํƒœ๊ทธ ์•„๋ž˜์— ๋„ฃ๋Š”๋‹ค.

    • โ— <form>์˜ method๋ฅผ put์œผ๋กœ ๋ฐ”๊พธ์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค!

      form์€ get/post๋งŒ ์ง€์›ํ•˜๊ธฐ ๋–„๋ฌธ.

    • updateForm.html

      <form name="question" method="post" action="/user/{{id}}">
          <input type="hidden" name="_method" value="PUT" />
          // ...
      </form>
  • ์œ„์™€ ๊ฐ™์ด _method๋กœ PUT์„ ์ „๋‹ฌํ•˜๋ฉด UserController์—์„œ๋Š” @PutMapping์œผ๋กœ URL์„ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

PUT ๋ฉ”์„œ๋“œ ์˜ค๋ฅ˜์‹œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ

spring.mvc.hiddenmethod.filter.enabled=true ์˜ ๋‚ด์šฉ์„ application.properties์— ์ถ”๊ฐ€ํ•œ๋‹ค.