인프런 커뮤니티 질문&답변

ysy9999님의 프로필 이미지
ysy9999

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

웹 mvc패턴을 활용해 view에서 성공적으로 반환된 데이터를 다시 가지고와서 다른view에 뿌려줄 수 있나요??

작성

·

196

·

수정됨

0

자바 스프링부트를 사용하여 // API 호출 $.ajax({ url: /dataclick?inpuDate=${targetDate}, method: 'GET', headers: { 'Accept': 'application/json', 'Authorization': Bearer ${token}, 'Content-Type': 'application/json', }, success: function (data) { console.log('받은 데이터:', JSON.stringify(data)); // editPage로 이동 window.location.href = '/editPage'; }, error: function (error) { console.error('데이터 불러오기 실패:', error); } });
제가 달력에서 선택한 날짜의 데이터를 성공적으로 받아와서 그성공적으로 받은 데이터를 editPage에 뿌리고싶어요 근데 mvc패턴을 사용해야하니 받아온데이터를 dto에 또 담아서 쓰고싶은건데 어떤식으로 작성해야할까요?
스프링 부트 고수님들 도와주세요

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요 ysy9999님

죄송하지만 질문 안내에서 말씀드린 것처럼 강의 학습에 관련된 질문을 올려주시길 부탁드립니다.

저도 마음으로는 도움을 드리고 싶지만, 하루에도 수많은 분들이 질문을 올려주십니다. 그래서 강의 학습과 관련된 질문에 초점을 맞추는 것이 맞다 생각합니다. 다시한번 이해를 부탁드립니다.

0

ysy9999님의 프로필 이미지
ysy9999
질문자

// 달력에 이벤트 클릭시 해당일의 데이터를 그대로 가져와 수정(이건 데이터 하나씩 받아야해서 list쓰면안됨)
public WorkHistoryDTO CalenderDay(String inputDate, String token) {
    String apiAddress = serverAddress + "/api/Job/WorkHistory-Day?inpuDate=" + inputDate;
    return getDayData(apiAddress, token);
}  // 일간 데이터 가져오기
    private WorkHistoryDTO getDayData(String apiAddress, String token) {
        HttpHeaders headers = new HttpHeaders();
        headers.set("Authorization", "Bearer " + token);

        HttpEntity<String> entity = new HttpEntity<>(headers);

        try {
            // 서버로 GET 요청을 보내고 응답을 받음
            ResponseEntity<WorkHistoryDTO> response = restTemplate.exchange(
                    apiAddress,
                    HttpMethod.GET,
                    entity,
                    WorkHistoryDTO.class
            );

            WorkHistoryDTO workHistory = response.getBody();

            // workHistory가 null이 아닌지 확인
            if (workHistory != null) {
                // 결과 반환
                System.out.println("불러온 데이터: " + workHistory);
                return workHistory;
            } else {
                System.out.println("데이터가 없습니다.");
                return null;
            }

        } catch (RestClientResponseException ex) {
            if (ex.getRawStatusCode() == 401) {
                System.err.println("로그인 실패 메시지: " + ex.getResponseBodyAsString());
            } else {
                System.err.println("서비스 오류: " + ex.getResponseBodyAsString());
            }
            return null;
        }
    }

 

//달력 이벤트 클릭시 맞는날짜 데이터 넘기기
    @GetMapping("/dataclick")
    public ResponseEntity<WorkHistoryDTO> getDay(@RequestParam(name = "inpuDate") String inputDate,
                                                 @RequestHeader("Authorization") String authorizationHeader) {
        String token = authorizationHeader.replace("Bearer ", "");
        try {
            WorkHistoryDTO result = service.CalenderDay(inputDate, token);

            if (result != null) {
                // 데이터가 있는 경우 JSON 응답 반환
                return new ResponseEntity<>(result, HttpStatus.OK);
            } else {
                // 데이터가 없는 경우 No Content 상태코드 반환
                return new ResponseEntity<>(HttpStatus.NO_CONTENT);
            }
        } catch (Exception e) {
            // 예외 처리 로직을 추가하여 적절한 응답이나 로깅을 수행할 수 있습니다.
            e.printStackTrace(); // 예외를 콘솔에 출력하거나 로깅할 수 있습니다.
            // 서버 오류인 경우 Internal Server Error 상태코드 반환
            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }
// API 호출
$.ajax({
    url: `/dataclick?inpuDate=${targetDate}`,
    method: 'GET',
    headers: {
        'Accept': 'application/json',
        'Authorization': `Bearer ${token}`,
        'Content-Type': 'application/json',
    },
    success: function (data) {
        console.log('받은 데이터:', JSON.stringify(data));

        // editPage로 이동
        window.location.href = '/editPage';
},
error: function (error) {
    console.error('데이터 불러오기 실패:', error);
}

성공적으로 내가 클릭한 날짜의 데이터는 잘받아오고 그데이터를 가지고 editPage수정페이지에 가져온데이터를 뿌리고싶습니다

ysy9999님의 프로필 이미지
ysy9999

작성한 질문수

질문하기