일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- AuthenticationEntryPoint
- 외부키
- 커밋메세지수정
- 예약
- 테스트
- ubuntu
- MySQL
- 추후정리
- 포트
- application.yml
- 컨테이너실행
- 2 > /dev/null
- 메세지수정
- WeNews
- subquery
- 메소드명
- 테스트메소드
- 서브쿼리
- appspec.yml
- 참조키
- foreignkey
- querydsl
- ㅔㄴ션
- 적용우선순위
- EC2
- 네이티브쿼리
- Query
- appspec
- 검색
- docker명령어
Archives
- Today
- Total
제뉴어리의 모든것
html에서 controller로 값을 넘길 때 매개변수에 매칭되는 기준.. 본문
보통은 <form> </form> 태그 내부에
<input> 태그를 사용해서 데이터를 입력받고
그 입력 받은 데이터들은 태그 속성에 정의된 name 또는 id의 명칭으로
submit button으로 인해 controller로 넘어갈때 controller내의 함수의 파라미터와 매칭이 된다.
즉, 만약에
<form th:action="@{/board/modify}" th:method="post">
<div class="form-group">
<label>Title</label>
<input type="text" class="form-control" name="title">
</div>
<div class="form-group">
<label>Content</label>
<input type="text" class="form-control" name="content">
</div>
<button type="submit" class="btn btn-primary"> Register </button>
<a th:href="@{/board/list(page = ${requestDTO.page}, type=${requestDTO.type},
keyword = ${requestDTO.keyword})}">
<button type="button" class="btn btn-info">List</button>
</a>
</form>
위와 같은 소스가 있다고 치자.
그리고 Register 버튼을 누른다면
form action 속성에 /board/modify 으로
title, content란 명칭으로 input 값들이 전송이 될것이다.
그리고 controller에는
@PostMapping("/modify")
public String modify(String title, String content)
{
boardService.modify(title, content);
return "redirect:/board/list";
}
대충 이런식의 함수가 있을것이다.
그리고 input의 데이터들은 name에 맞는 파라미터 변수들에게 매칭이 될것이다.
그러나 이러한것을 <script>상에서 처리해야할때.
예를들어
<script>
var actionForm = $(".replyForm");
$(".replRegBtn").click(function() {
actionForm.attr("action","/board/modify").attr("method","post");
var ti = $("input[name='title']"); //var 변수명은 controller의 매개변수명과 매칭 되지 않는다..
var con = $("input[name='content']");
actionForm.append(ti);
actionForm.append(con);
actionForm.submit();
})
</script>
이런식의 html내에 javascript 내용이 있다.
이런 경우 append할때 적용되는 var 변수명이 controller 함수의 파라미터의 변수명과 매칭되는것이 아니라,
무조건 들어가는 원래 데이터의 name이나 id 명칭과 매칭이 된다.
그러므로 var변수의 명칭이 ti 이든 con이든 상관이 없다.
즉, 무조건 name 이나 id 명칭이 controller 파라미터의 변수명과 일치해야한다.
당연히 파라미터로 무조건 변수를 일일히 받을 필요없이 DTO와 같이 객체로 받아도된다.
그 DTO 안에 변수명이 넘어오는 데이터의 name이나 id와 매칭이 된다면..
'기타...' 카테고리의 다른 글
aws 용어 정리 (0) | 2021.04.01 |
---|---|
@RequestBody, @ResponseBody, 그리고 Content-Type (0) | 2021.02.27 |
html, script, thymeleaf 주석 방법 (0) | 2021.02.27 |
Spring boot에 Google Login 연동하기 (0) | 2021.02.18 |
구글 클라우드 플랫폼에 앱 클라이언트 생성하기 (0) | 2021.02.18 |