작성
·
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
// 달력에 이벤트 클릭시 해당일의 데이터를 그대로 가져와 수정(이건 데이터 하나씩 받아야해서 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수정페이지에 가져온데이터를 뿌리고싶습니다