Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 배열
- 백틱
- 자바스크립트
- 동적테이블
- Ajax
- DATE_FORMAT
- 명령어
- JS
- order by
- 변수
- 프로그래머스
- 리눅스
- option태그
- 도커
- Update
- 함수
- MySQL
- like
- 코테
- oracle
- 인라인뷰
- JavaScript
- 동적
- post방식
- 컨트롤러
- 테이블
- JSP
- select
- SQL
- Spring
Archives
- Today
- Total
bom's happy life
@ResponseBody로 ajax에 String형으로 보내서 활용하기(json사용) 1 본문
Deveolpment Study🗂️/Spring Framework
@ResponseBody로 ajax에 String형으로 보내서 활용하기(json사용) 1
bompeach 2024. 5. 23. 14:02@ResponseBody 사용하면 보통 List배열 형태로는 ajax에서 못 받는 것 같고
배열형태를 String으로 보내서 ajax에서 받고, ajax에서 json으로 변환해서 사용해야 하면 된다.
@ResponseBody
@RequestMapping(value = "/findAvailableTimes.do", method = RequestMethod.GET)
public String findAvailableTimes(Model model, @ModelAttribute PassportInfoVO passportInfoVO) throws Exception {
List<PassportInfoVO> list = passportService.findAvailableTimes(passportInfoVO);
JSONArray result = JSONArray.fromObject(list);
return result.toString();
}
-> 컨트롤러에서 배열형태로 받은 데이터를 json으로 String형으로 보내기!
function getAvailableTimes(reservDate) {
var data ={
reservDate: reservDate
}
$.ajax({
type: "GET",
url: "${pageContext.request.contextPath}/dpt/dpt06/findAvailableTimes.do",
data: data,
success: function(response) {
console.log("response : " + response);
var displayArea = document.getElementById('time_select');
var timeSelector = document.createElement('ul');
displayArea.innerHTML = '';
var itemList = JSON.parse(response); //이렇게 사용하면 된다!그럼 json형식으로 변환됨.
itemList.forEach(item => {
var time = item.reservTime; //그럼 이런식으로 변수를 빼서 사용할 수 있다.
var yn = item.reservYn;
var listItem = document.createElement('li');
var radioInput = document.createElement('input');
radioInput.type = 'radio';
radioInput.name = 'schdulTmeNos';
radioInput.id = 'time_' + time.replace(/:/g, '');
radioInput.value = time;
var label = document.createElement('label');
label.setAttribute('for', radioInput.id);
label.textContent = time;
listItem.appendChild(radioInput);
listItem.appendChild(label);
timeSelector.appendChild(listItem);
});
displayArea.appendChild(timeSelector);
},
error: function(error) {
console.error('error : ', error);
}
});
}
-> 컨트롤러에서 배열을 String형으로 보냈기 때문에 response에서 문자열로 쭉 나열된다.(문자열로 나열 된 데이터는 사용할 수 없음.)
-> 그래서 response를 JSON.parse(response) 이렇게 JSON형태로 변환시켜준다.
-> 그리고 변환된 데이터를 반복문을 통해서든지 등등 사용해줄 수 있다.
'Deveolpment Study🗂️ > Spring Framework' 카테고리의 다른 글
리스트에서 seq뽑아 새로운 로직수행 후 list에 담아 출력하기. (0) | 2024.01.29 |
---|---|
@RestController에 대해서 (0) | 2023.12.21 |
<form:select path=""> 사용해서 서버로 option값 보내기 (0) | 2023.12.21 |
[Lombok] @NoArgsConstructor, @AllArgsConstructor (1) | 2023.12.01 |
[Spring] Ajax로 List데이터 받기 (0) | 2023.11.01 |