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 |
Tags
- 태그
- eGov
- controller
- 오류
- web.xml
- Java
- POI
- spring
- TO_DATE
- Oracle
- select
- javascript
- 함수
- jQuery
- Database
- CSS
- 과정평가형
- mybatis
- sql
- 배열
- array
- was
- 암호화
- eGovFramework
- 개념
- Ajax
- html
- json
- input
- JVM
Archives
- Today
- Total
web developer
[java] 배열을 문자열로 변환하여 AJAX를 통해 Java로 보내는 과정 본문
728x90
728x90
1. jQuery 버전 확인
- Ajax에서 배열을 전송할 때, traditional: true 옵션을 사용해야 하는 경우는 jQuery 1.4 이전의 버전에서 jQuery.param() 함수를 사용할 때입니다.
- jQuery 1.4 이전 버전에서는 param() 함수가 기본적으로 배열을 전송할 수 있는 형태로 시리얼라이즈하지 않기 때문에, 배열을 전송할 때 traditional: true 옵션을 명시적으로 설정해야 했습니다.
- 하지만 jQuery 1.4 이후 버전부터는 param() 함수가 기본적으로 배열을 다룰 수 있는 방식으로 업데이트되어서, 일반적으로 traditional: true 옵션을 따로 지정하지 않아도 됩니다.
2. params 객체를 JSON 문자열로 직렬화하여 AJAX 요청으로 서버에 전송
배열을 문자열로 변환하여 AJAX를 통해 Java로 보내는 과정이다.
- JavaScript에서 AjaxArrayToJava 함수가 호출되면, params 객체가 JSON 문자열로 직렬화되어 AJAX 요청으로 서버에 전송됩니다.
- Spring 컨트롤러의 receiveSurveyData 메서드는 @RequestBody와 Map을 사용하여 요청 본문을 Map<String, Object> 객체로 변환합니다.
- 서버는 Map 객체를 처리하고, 클라이언트에게 문자열 응답을 반환합니다.
javaScript
function AjaxArrayToJava(){
var params = {
question : ['1. What`s the value at index?', '2. Can you explain the element at index?', '3. What does index 2 contain?', '4. Could you describe what`s in position?', '5. How about the data stored at index?', '6. Tell me about the value found at index', '7. What`s the content of index', '8. Describe what you see at index', '9. And finally, what`s stored at index'],
answer : ['02', '01', '01', '01', '01', '01', '01', '01', '00']
};
const jsonString = JSON.stringify(params);
console.log(jsonString);
/*
{
"question":["1. What`s the value at index?","2. Can you explain the element at index?","3. What does index 2 contain?","4. Could you describe what`s in position?","5. How about the data stored at index?","6. Tell me about the value found at index","7. What`s the content of index","8. Describe what you see at index","9. And finally, what`s stored at index"],
"answer":["02","01","01","01","01","01","01","01","00"]
}
*/
$.ajax({
url : "/AjaxArrayToJava.do",
contentType : "application/json",
type : "post",
data : jsonString,
success : function(data) {
console.log(data);
},
error : function(request, status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
java
@RequestMapping(value = "/AjaxArrayToJava.do", method = RequestMethod.POST)
public void AjaxArrayToJava(
HttpServletRequest request,
HttpServletResponse response,
HttpSession session,
@RequestBody Map<String, Object> params
){
try {
// Map으로 받은 데이터 처리
List<String> questions = (List<String>) params.get("question");
List<String> answers = (List<String>) params.get("answer");
// 받은 데이터 출력
System.out.println("Questions: " + questions);
//Questions: [1. What`s the value at index?, 2. Can you explain the element at index?, 3. What does index 2 contain?, 4. Could you describe what`s in position?, 5. How about the data stored at index?, 6. Tell me about the value found at index, 7. What`s the content of index, 8. Describe what you see at index, 9. And finally, what`s stored at index]
System.out.println("Answers: " + answers);
//Answers: [02, 01, 01, 01, 01, 01, 01, 01, 00]
}catch (Exception e) {
System.out.println("!! Exception !!");
}
}
728x90
728x90
'Language > Java' 카테고리의 다른 글
[java] SHA-256 암호화 [단방향] (0) | 2024.07.23 |
---|---|
[java] AES-256 암호화, 복호화 [양방향] (0) | 2024.07.22 |
[java] poi 서체(font), 셀 스타일(cellStyle) 변경 (2) | 2024.02.29 |
[java] poi excel 메모(comment) 생성 및 위치조정 (2) | 2024.02.29 |
[java] jar파일 MANIFEST.MF (2) | 2024.02.29 |