JSP, Spring 이용해서 웹사이트 만들고 있는데,
사용자가 정보를 입력하면 그걸 복잡한 객체(필드로 또 다른 객체를 가지는..)로 Controller에서 받고 싶어
JSON 데이터 전송이면 보통 ajax 얘기가 나오던데 ajax 요청을 보내고 @RequestBody로 받으면 받는거까지는 잘 됨.
문제는 받은 객체로 이런저런 처리를 하고 다른 객체를 다시 Model에 담아서 다른 JSP 페이지로 이동하게 하고 싶은데 ajax 요청으로는 이게 안 되는거 같음.
그럼 해결방법은 JSON 데이터를 그냥 POST 방식으로 보내서 String 타입으로 받은 다음에, Controller에서 내가 직접 역직렬화 하는 정도가 떠오르는데
1) ajax로는 페이지 이동이 안 되는게 맞지?
2) 혹시 다른 좋은 방법이 있을까?
ajax는 데이터 주고받는용도지 페이지이동이아님 model에담는건 화면을 리턴할때고
예를들어 데이터삽입화면에 파라미터를 담아 ajax호출을하고 조회화면에서 해당삽입데이터를 조회하려면 삽입화면에서 삽입 ajax요청하고 조회화면으로 리다이렉팅하는 api를 하이퍼링크로 호출하고 해당화면에는 화면이 마운트될때 ajax로 조회하는 메소드를써야지
나도 이거 생각함 그리고 유지보수 측면에서도 쪼개는게 낫지않으려나
아니 이렇게 하지않음? 자바로만 데이터받는 jsp하다가 리액트넘어와서 모르겠는데 ajax로 데이터처리하려면 이거말고 더있나 모르겠네 리액트도 이런방식으로하는데
이 방법대로면 조회화면(JSP)에서 java 객체를 사용할 순 없고, json 데이터로만 다루게 되는거 맞지?
ㅇㅇ ajax로 json받아와서 자바스크립트 데이터로 파싱하고 그값을 제이쿼리로 때려박기
아작스 쓰기싫으면 model에 데이터배열 담고 화면으로 포워딩하고 스크립틀릿이나 jstl로받아
ajax 말고 그냥 POST나 GET으로 JSON 형식의 String 값 전달해서 쓰라는 얘기지?
ㄴㄴ 제이슨이 아작스 값이고
ajax파라미터 json은 제이쿼리로 값가져오고 그걸로 자바스크립트객체만들어서 값넣고 보내면댐 제이쿼리아작스가 알아서 제이슨파싱해줌
아작스안쓰려면 form으로 해당 api호출하면됨
폼이나 쿼리스트링으로 보낼수있어
ajax를 쓴다 -> 조회화면에서 js로 json 파싱해서 사용. 조회화면에서 java 객체 형태로 쓰고 싶다 -> ajax를 쓰면 안 됨. 인거지?
삽입할때는 ajax로 백엔드에 파라미터 던져서 db에 값넣고 자바로 데이터를 받고싶으면 해당디비 조회에서 model객체에 그값 넣어줘서 해당 조회화면에 포워딩하면됨
잠만 혹시 이거 조건검색할때 조건값은 ajax로 보내고 받는건 자바객체로 받고싶단 소리야?
엉 사용자가 입력한 데이터를 ajax로 받아서 백엔드에서 차리하고(정확히는 JSON 데이터 형식이면 됨), 결과에 해당하는 java 객체를 model에 담아서 결과화면에서 사용하고 싶은거야 - dc App
굳이? ajax로 검색조건넣어서 호출하면 결과값도 주잖어
'ajax로 검색조건넣어서 호출하면 결과값도 준다'는게 잘 이해는 안 되는데.. 사용자가 입력한 조건에 부합하는 게임 캐릭터 목록 보여주는 걸 구현하려고 하거든? 근데 조건이 무기는 a 장착, 상의는 몇 강화 이상.. 뭐 이런 식이라 GET, POST로 전달하기에는 너무 복잡해서 JSON 형식으로 보내려고 하는거야. 그리고 캐릭터 목록을 보여주는 JSP 페이지는 이미 구현이 돼있어서 이걸 재활용하고 싶어서 반환은 java 객체로 하고 싶은거구
제이쿼리 아작스 양식검색해서바바 sucess속성이 결과값받는 부분이야 너가 파라미터담아서 요청하자마자 바로담긴다고
아 무슨 말인지는 이해했는뎅 결국 json 형태로 결과를 받아야 하는거고, 결과화면에서 java 객체로 사용하고 싶은 내 상황에서는 ajax는 사용할 수 있는 선택지가 아닌거네?
그리고 get post json은 달른거야 get post는 데이터를 어떤방식으로 보낼까이고 json은 데이터를 의미해
결과를 json형태로받은걸 아작스가 알아서 자바스크립트값으로 변경을시켜줘 그걸 제이쿼리로 값을 꽂아넣어야해
값을 꼭 자바로 받고싶으면 form으로 데이터요청해서 컨트롤러에서 모델객체에 값담고 던져
그러야겠다 계속 검색해봐도 form 외에 딱히 다른 방법을 못 찾겠네.. 답변 고마웡
값을 자바로 받고싶으면 form이나 쿼리스트링으로 api호출 자바스크립트로 받고싶으면 ajax로 호출 그러면 각자 요청받는 컨트롤러도 내용이달라지겠지?
윗댓말대로 하는 방식이 보편적인것같은데 근데 특이한경우에 RedirectAttributes 애노테이션 써서 객체를 리다이렉트되는페이지까지 저장한상태로 보내버릴수있음
윗댓에서 삽입 ajax를 요청을 처리하는 controller에서 redirecAttributes에 A객체를 담으면, ajax가 성공해서 조회화면으로 redirect 하는 api를 하이퍼링크로 호출 했을 때, 조회화면의 controller에서 A객체를 사용할 수 있다는거 맞아?
고맙다 씨발 글과 댓글로 좋은 정보 얻고간다