1. action="/store/{{model.id}}/update" 없으면
: 수정 요청이 서버로 전송되지 않음
문제 코드
<form method="POST">발생하는 오류
- action이 없으면 폼이 현재 페이지(update-form)로 제출됨.
- 서버에서 POST /store/{id}/update를 처리하지 않으므로 상품 수정이 되지 않음.
오류 메시지
오류 메시지는 없지만, 폼이 현재 페이지로 제출되므로 수정이 반영되지 않음.
해결방법
<form action="/store/{{model.id}}/update" method="POST">2. name="name", name="stock", name="price" 없으면
: 데이터가 서버로 전송되지 않음
문제 코드
<input type="text" value="{{model.name}}"><br>
<input type="text" value="{{model.stock}}"><br>
<input type="text" value="{{model.price}}"><br>발생하는 오류
- <input> 태그에 name 속성이 없으면, 브라우저가 입력 값을 서버로 전송하지 않음.
- storeService.상품수정()에서 name, stock, price를 @RequestParam으로 받을 수 없음.
오류 메시지
org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'name' is not present해결방법
<input type="text" value="{{model.name}}" name="name"><br>
<input type="text" value="{{model.stock}}" name="stock"><br>
<input type="text" value="{{model.price}}" name="price"><br>3. method="POST" 삭제
: GET 요청이 되어 수정 불가능
문제 코드
<form action="/store/{{model.id}}/update">발생하는 오류
- method="POST"이 없으면 기본적으로 GET 요청이 됨.
- 서버에서는 @PostMapping("/store/{id}/update")만 처리할 수 있기 때문에 405 Method Not Allowed 오류 발생.
오류 메시지
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' is not supported해결방법
<form action="/store/{{model.id}}/update" method="POST">4. value="{{model.name}}", value="{{model.stock}}", value="{{model.price}}" 삭제
: 입력 필드가 비어 있음
문제 코드
<input type="text" name="name"><br>
<input type="text" name="stock"><br>
<input type="text" name="price"><br>발생하는 오류
- 기존 데이터(model.name, model.stock, model.price)가 <input>에 자동으로 채워지지 않음.
- 사용자가 기존 값을 확인할 수 없고, 직접 다시 입력해야 함.
오류 메시지
오류 메시지는 없지만, 기존 데이터가 보이지 않음.
해결방법
<input type="text" value="{{model.name}}" name="name"><br>
<input type="text" value="{{model.stock}}" name="stock"><br>
<input type="text" value="{{model.price}}" name="price"><br>5. <button type="submit"> 삭제
: 폼을 제출할 방법이 없음
문제 코드
<form action="/store/{{model.id}}/update" method="POST">
<input type="text" value="{{model.name}}" name="name"><br>
<input type="text" value="{{model.stock}}" name="stock"><br>
<input type="text" value="{{model.price}}" name="price"><br>
</form>발생하는 오류
- button이 없으면 사용자가 폼을 제출할 수 없음.
- 데이터가 전송되지 않아 상품 수정이 되지 않음.
오류 메시지
오류 메시지는 없지만, 기존 데이터가 보이지 않음.
해결방법
<button type="submit">상품수정</button>6. {{model.id}} 삭제
: 수정할 상품의 ID를 서버로 전달하지 못함
문제 코드
<form action="/store/update" method="POST">발생하는 오류
- {{model.id}}가 없으면 /store/update로 요청이 가는데, @PostMapping("/store/{id}/update")를 처리할 수 없음.
- 서버에서 ID를 찾을 수 없으므로 404 Not Found 또는 400 Bad Request 오류 발생.
오류 메시지
org.springframework.web.servlet.NoHandlerFoundException: No handler found for POST /store/update해결방법
<form action="/store/{{model.id}}/update" method="POST">7. {{> layout/header}} 삭제
: 페이지 레이아웃이 깨짐
문제 코드
<section>
<form action="/store/{{model.id}}/update" method="POST">
<input type="text" value="{{model.name}}" name="name"><br>
<input type="text" value="{{model.stock}}" name="stock"><br>
<input type="text" value="{{model.price}}" name="price"><br>
<button type="submit">상품수정</button>
</form>
</section>발생하는 오류
- {{> layout/header}}는 보통 공통적인 header.html 템플릿을 포함하는 역할을 함.
- 이를 제거하면 네비게이션 바, 스타일, 공통 스크립트 등이 사라질 수 있음.
오류 메시지
오류 메시지는 없지만, 레이아웃이 깨짐.
해결방법
{{> layout/header}}
Share article