반응형
오늘은 Spring에서 Ajax로 배열 및 리스트로 값을 넘기는 방법에 대해 포스팅 하려고 합니다.
먼저 ajax를 작성합니다. 형태는 json 데이터 타입으로 하고,
배열 및 리스트로 넘기기 위해서 속성중에 traditional : true 을 선언해야 합니다.
// ajax 소스
var allData = {"user_id_arr" : user_id, "user_name_arr" : user_name, "expire_arr" : expire, "deptname_arr" : deptname,
"phone_arr" : phone, "email_arr" : email, "desc_arr" : desc, "office_code_arr" : office_code, "infra_seq" : '${infraSeq}', "basedn" : '${basedn}'}
$.ajax({
url: "${ContextPath}/admin/vdicreatemultiuser.prc",
dataType: "json", //json 형태의 타입
data: allData,
traditional :true, // *배열 및 리스트로 값을 넘기기 위해서는 꼭 선언되어야 함.
type: "POST",
success: function(data){
var result = "";
for (var i = 0; i < data.length; i++) {
if(data[i] == "0000"){
result = "성공";
$("#result"+i).css("color","blue");
}
$("#result"+i).text(result);
}
},
error: function(xhr, status, error){
console.log("xhr:"+xhr+", status:"+ status + ", error:"+error);
},
complete : function (data) {
}
});
java에서 받을때 배열 또는 리스트는 request.getParameterValues(key); 형태로 받고
단일 데이터는 String basedn = request.getParameter(key); 형태로 받으면 됩니다.
// java
public void vdicreatemultiuserprc(Model model, HttpSession session, HttpServletRequest request,
HttpServletResponse response) throws Exception {
logger.debug("########## /admin/vdicreatemultiuser.prc start ##########");
PrintWriter printWriter = response.getWriter();
JSONObject jsonObject = new JSONObject();
response.setCharacterEncoding("UTF-8");
String[] user_id_arr = request.getParameterValues("user_id_arr");
String[] user_name_arr = request.getParameterValues("user_name_arr");
String[] expire_arr = request.getParameterValues("expire_arr");
String[] deptname_arr = request.getParameterValues("deptname_arr");
String[] phone_arr = request.getParameterValues("phone_arr");
String[] email_arr = request.getParameterValues("email_arr");
String[] desc_arr = request.getParameterValues("desc_arr");
String[] office_code_arr = request.getParameterValues("office_code_arr");
String infra_seq = request.getParameter("infra_seq");
String basedn = request.getParameter("basedn");
CreateUserVo createUserVo = new CreateUserVo();
List<String> result = new ArrayList();
for(int i=0; user_id_arr.length>i; i++) {
createUserVo.setInfra_seq(infra_seq);
createUserVo.setBaseDn(basedn);
createUserVo.setUser_id(user_id_arr[i]);
createUserVo.setUser_name(user_name_arr[i]);
createUserVo.setExpire(expire_arr[i]);
createUserVo.setDeptname(deptname_arr[i]);
createUserVo.setPhone(phone_arr[i]);
createUserVo.setEmail(email_arr[i]);
createUserVo.setDesc(desc_arr[i]);
createUserVo.setOffice_code(office_code_arr[i]);
logger.info("createUserVo : " + createUserVo.toString());
if(isEmpty(createUserVo.getInfra_seq()) ||
isEmpty(createUserVo.getUser_id()) ||
isEmpty(createUserVo.getUser_name())){
logger.error("요구되는 값이 충족되지 않았습니다.(infra_seq, userName, userID)");
result.add(createUserVo.getUser_id() + "Not Enough Reqeust(infra_seq, userName, userID)");
System.out.println("########1" + MessageUtil.getMessage("setting.request.not.enough.fail")+"(infra_seq, userName, userID)");
result.add("9999");
}else{
result.add("0000");
}
printWriter.print(JSONArray.fromObject(result));
logger.debug("########## /admin/vdicreatemultiuser.prc end ##########");
}
지금까지 SpringBoot Ajax 배열, 리스트로 값 넘기기에 대한 포스팅이였습니다.
이해가 안되시거나 추가적인 문의는 댓글로 주시면 감사하겠습니다.
반응형
'Develope > Spring' 카테고리의 다른 글
[Spring] JpaRepository where에 List 사용 방법 (3) | 2024.04.18 |
---|---|
[SpringBoot] 엑셀(Excel) 파일 업로드 방법(poi 라이브러리) (18) | 2020.02.14 |
[SpringBoot] mysql jdbc driver 설정 및 사용방법 (0) | 2020.02.14 |
[Spring] @RequestMapping produces를 이용한 Response Content-Type 변경 (0) | 2019.09.20 |
[SpringBoot] Common application properties 부록 (0) | 2019.06.04 |