inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

PRG Post/Redirect/Get

상품등록 버튼과 취소버튼의 차이

512

코딩먹는하마

작성한 질문수 74

0

addForm.html에서

<div class="row">
    <div class="col">
        <button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button>
    </div>
    <div class="col">
        <button class="w-100 btn btn-secondary btn-lg"
                onclick="location.href='items.html'"
                th:onclick="|location.href='@{/form/items}'|"
                type="button">취소</button>
    </div>
</div>

상품등록은

<form action="item.ht ml" th:action th:object="${item}" method="post">

에 의해 @PostMapping("/add")으로 이동합니다.

하지만 취소는

th:onclick="|location.href='@{/form/items}'|"

onclick을 설정하여 다른 url로 갑니다.

 

같은 form 속성에 있더라도 onclick을 추가하면

독립적인(?) 동작을 하는 것으로 보이는데

(1)

그러면 실무에서 한 html에(한 화면에) 수많은 버튼이 있다면 사용자의 데이터를 가져가야할 버튼은 form속성을 이용하여 만들고

(예로들어 상품 등록, 상품 수정 저장 버튼)

사용자의 데이터가 필요없고 url이동만 필요한 경우 onclick을 추가하여 버튼을 만드는 것인가요??

(예로들어 취소, 목록 버튼 같은 경우)

(2)

상품등록은 type="submit"

취소는 type="button" 을 하셨길래 그 차이가 궁금하여 구글링을 해봤더니 버튼은 타입 명시가 없다면 기본적으로 'submit' 처리가 되며 'submit'은 새로고침을 하게 한다. 라는 것을 알게되었습니다.

그래도 잘 이해가 안되 상품등록버튼을 type="button"

으로 바꿔봤더니 작동이 되지않았습니다...

그래서 개발자도구를 보니 type="button"을 하면 POST가 아닌 GET으로만 보내고 있는 것을 확인했습니다.

왜 GET으로만 보내는 지 구글링을 해보았지만 답을 찾을 수 가 없었습니다. 알려주시면 정말 감사하겠습니다.

 

spring mvc

답변 1

0

David

안녕하세요. 코딩먹는하마님, 공식 서포터즈 David입니다.

  1. form 태그 내 form의 submit(제출)을 지원하는 요소(예: <button type="submit">)가 있다면 해당 요소를 통해 form을 제출할 수 있습니다. 그런데 form의 제출과 별개로 해당 태그를 클릭했을 때 특정 동작을 수행하고 싶다면 onclick 속성을 통해 구현할 수 있습니다. 꼭 url 이동이 아니더라도요.

  2. submit 일 때 post로 요청되는 이유는 form 속성 중 method가 post이기 때문입니다. 만약 get으로 보내지고 있다면 onclick에 정의된 속성 값에 의해 get 요청이 발생할 수 있습니다.

감사합니다.

servlet과 container에 대한 질문입니다

0

25

1

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

0

64

1

jsp 의존성 수정 요청

0

80

2

요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?

0

143

1

save() 메서드 문의

0

67

1

절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상

0

101

1

request-body-json

0

83

2

MVC 패턴의 적용 단위

0

97

1

RequestMapping을 이용한 핸들러, 어댑터

0

119

2

save 후 결과화면

0

89

2

jsp를 이용한 view

0

97

1

application.properties에 debug 추가해도 결과가 똑같습니다.

0

178

1

수업 코드 제공 관련 문의

0

97

2

RequestMappingHandlerAdapter의 Controller 호출 과정

0

100

3

파일 오픈 시

0

70

1

스프링 배치 관련

0

78

1

@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부

0

112

1

postman으로 /request-body-json-v1 호출시 500 error

0

96

1

프론트엔드와 백엔드의 mvc, rest api에 대한 질문

0

79

1

모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문

0

111

1

console log 출력 관련 질문입니다.

0

75

1

애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ

0

139

1

html 변경하는 부분 적용 문제

0

103

1

한글 깨짐

0

77

2