Adventure Time - Finn 3
본문 바로가기
카테고리 없음

js 배열 ajax 를 이용해 컨트롤러에서 받기

by hyun9_9 2024. 4. 5.
function letterRead(){
	console.log("읽음 처리");
	
	var checkedLetters =letterArr();
	console.log("체크 된거 : "+checkedLetters);
	
	
	$.ajax({
		type: "POST",
		url: "/user/letterCheckRead",
		data: {
			"letterCheck": checkedLetters
		},
		dataType: 'json',
		success: function(data) {
			console.log(data);

		},
		error: function(error) {
			console.log('에러발생');
			console.log('에러의 종류:' + error);
		}

	});
	
}
function letterArr(){
    // 체크된 편지 ID를 담을 배열
    var checkedLetters = [];
    
    // 체크된 편지의 ID를 배열에 추가
    var letterCheckboxes = document.getElementsByName("lettercheck");
    for (var i = 0; i < letterCheckboxes.length; i++) {
        if (letterCheckboxes[i].checked) {
            checkedLetters.push(letterCheckboxes[i].id);
        }
    }
    return checkedLetters;
}

 

    @PostMapping("/letterCheckRead")
    public @ResponseBody String letterCheckRead(@RequestParam(value="letterCheck[]") List<String> letterCheck ,
    		LetterDTO lDTO, HttpSession session,  Gson gson) {
    	
    	System.out.println("리스트 확인 : "+letterCheck);
    	// jsp에서 
        // 세션에서 로그인 ID 가져오기
        String loginId = (String)session.getAttribute("loginId");
        
        // 편지 확인
        // 편지 목록이 리스트로 전달됨
        // 우편의 주요 키(primary key)도 함께 전달됨
        // 반복문을 사용하여 읽음 또는 안 읽음 상태를 처리하고 삭제도 가능함
        for (String pk : letterCheck) {
            Integer letterDatas = Integer.valueOf(pk); // 문자열을 정수형으로 변환
            lDTO.setLetterId(letterDatas);
            lDTO.setSearchCondition("updateAllRead");
            System.out.println("체크된 pk 확인 : "+pk);
//            letterService.update(lDTO);
        }
        
        // Gson을 사용하여 결과 데이터를 다시 로드해야 함
        // 결과 데이터를 함께 반환해야 함
        String jsonResult = gson.toJson("success"); // 결과값을 JSON 형태로 변환
        
        return jsonResult;
        
    }