일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 오라클
- url 변환
- 배열
- spring
- React
- 이름 마스킹
- 스프링
- 자바
- JSX
- 개발
- JavaScript
- Oracle
- 모바일게임
- JSTL
- html
- JS
- SQL
- array
- 원펀맨: 최강의 남자
- 자바스크립트
- 리액트
- 맛집
- Java
- url 치환
- table
- set
- 형변환
- forEach
- 원펀맨
- jQuery
Archives
- Today
- Total
특별한 일상
[개발] Ajax 배열 넘기기 traditional (ft. 화면에서 서버단으로 배열 넘겨받기) 본문
반응형
안녕하세요. 소다맛사탕 입니다.
오늘은 웹 페이지를 구현할 때 자주 사용하는 ajax에서 배열로 선언된 데이터를 넘기는 방법에 대해 알아보겠습니다.
※ Ajax (Asynchronous JavaScript And XML)
빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법의 하나.
원래 ajax는 비동기 화면을 구현하거나 웹 페이지 이동시 서버로의 데이터를 주고 받기위해 자주 사용하는데요.
개발을 하다보면 배열을 넘겨야 하는 상황이 발생합니다.
그런데...
분명히 배열을 정확히 선언해서 서버로 보냈는데...
서버에서 찍히는 값은 null 또는 빈 공백으로 들어오는 경우가 있습니다.
그래서 ajax에 선언해야 하는 방법중 하나가
traditional
Ajax 옵션, Type: Boolean, default: false, 데이터에 배열을 전송할 때 데이터 직렬화를 하는 옵션.
사용방법
JavaScript ajax 선언(View)
var arr = ["123","가나다","abc"];
$.ajax({
url: "testTraditional",
type: "post",
traditional: true, // ajax 배열 넘기기 옵션!
data: {"arrStr" : arr},
dataType: "json",
success: function (data) {
console.log(data);
},
error:function(request,status,error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
Spring MVC Java 데이터 받기(Controller)
@ResponseBody
@RequestMapping(value = "testTraditional", method = RequestMethod.POST)
public Object testTraditional(HttpSession session, HttpServletRequest req)
throws Exception {
Map<String, Object> resultMap = new HashMap<String, Object>();
// ajax를 통해 넘어온 배열 데이터 선언
String[] arrStr = req.getParameterValues("arrStr");
try {
if(arrStr !=null && arrStr.length > 0) {
for(int i=0; i<arrStr.length; i++) {
System.out.println("ajax traditional result : " + i +" : "+ arrStr[i]);
}
resultMap.put("result", "success");
} else {
resultMap.put("result", "false");
}
} catch (Exception e) {
e.printStackTrace();
}
return resultMap;
}
---- 결과 ----
ajax traditional result : 0 : 123
ajax traditional result : 1 : 가나다
ajax traditional result : 2 : abc
뷰(view)단 : JavaScript에서 ajax를 이용해 배열을 선언한 데이터를 넘길때, traditional: true로 설정
서버(Controller)단 : 뷰단에서 넘어온 데이터를 Controller에서 받기위해
HttpServletRequest의 getParameterValues로 선언한 값 받기.
(참고로 getParameterValues 선언하지 않고 메서드에 String[] arrStr <= 와 같이 직접 선언해서 받아도 무방)
'IT•개발 끄적 > 개발' 카테고리의 다른 글
[개발][Java] 문자열에 다른 문자열 포함 method 생성하기(eq. JavaScript includes()) (0) | 2023.09.25 |
---|---|
[개발][jQuery] 속성 선택자 & 필터 선택자 정리 (0) | 2022.02.08 |
[개발][Java] cookie 사용 방법 및 예제(자바 쿠키) (0) | 2021.12.28 |
[개발][Java] session 사용 방법 및 예제(자바 세션) (0) | 2021.12.26 |
[개발] session과 cookie 차이점과 사용용도. (1) | 2021.04.13 |
Comments