[Spring]Gson(ajax)

내용
Gson
Stream
@ResponseBody
jsonView
진행일시
2021/03/27
속성

1. Stream을 이용한 전송

1-1

ajax를 사용하기위해서는 JQuey CDN이 필요하다

1-2 Gson을 변환하기위해서는 GsonLib가 필요하다

Maven 부분을 복사한뒤 pom.xml에 붙여다 준다.

1-3 Gson을 생성할때는 GsonBuilder()를 이용한다

GsonController
1. Gson을 생성 → GsonBuilder 이용 , 2.Stream으로 내보내기 위해서 HttpServlerResponse를 이용(매개변수에도 작성필수) 3.gson.toJson(memberList) → memberList를 Json문자열로 반환
4. Encoding을 하기위해서 response.setContentType("application/json; charset=UTF-8");을 이용한다 application/json은 MIME타입을 의미한다.
1. stream을 이용하는 반환은 HttpServletResponse response를 이용하여 하는 방식이고 직접적으로 response를 사용하여 반환하는것이라서 종속적인관계가 형성된다. 그래서 권장하지않는 방법중에 하나이다.

1-4 main.jsp

memberInfo1 table를 생성한다 tbody부분은공백으로설정
memberInfo1에 정보를 불러오기위해서 비어있는 tbody에 넣어줘야한다 그래서 const $table = $("#memberInfo1 tobody"); 로 설정후 table을 백지로 만들기위해 .html("")이용

2.@ResponseBody를 이용하여 전송

stream을 이용하는 방식과 유사하나 HttpServletResponse respose를 이용하지않고 어노테이션@ResponsBody를 이용하는 방식이다 @GetMapping부분에(value값이랑 produces부분을 넣어야한다) HttpSerlvetResponse response를 이용하지않아 종속적인관계에서 벗어나기때문에 이 방법이 권장된다.
main.jsp 작성은 stream방식과 동일하게하면된다.

3.jsonView를 이용하여 ModelAndView에 반환하는 방법(3.jsonView를 이용한 BeanNameViewResolver로 응답하기)

3-1 jsonView의 특징

jsonView를 이용하여 ModelAndVIew에 반환하는방법
ModelAndView에 값을 담아 넘기는것
json에서 제공하는 jsonView를 등록
뷰 이름 jsonView넘어오면 jsp가아닌 json로 응답하라는 resolver방식 전송하려는 객체를 ModelAndview에 담고 view이름을 jsonView로 설정하여 반환 jsonView라는 이름의 bean이 존재하는 경우 jsp응답이 아닌 json을 로응답할 수 있는뷰 리조버인 BeanNameViewResolver를 이용한다.
jsonView 빈등록하는 방법 ( 1. mavenRepository에서 JsonLib4Spring을 검색하고 maven탭에서 정보를 복사해서 pom.xml에 붙여준다 2.servlet-context.xml에 들어가 jsonView를 할수 있게 bean등록을 해준다

1. Maven에서 lib찾기

2. servlet-context.xml에서 jsonView를 이용하기위해 bean등록해주기

3. Controller에서 jsonView를 갈 수 있게 setViewNames("jsonView")로 설정

3-1 memberList를 Json문자로 변환시킨다

3-2 servlet-context.xml에서 bean등록한 jsonView로 갈수 있게 bean의 id값을 setViewNames()괄호 안에 넣어준다

4. main.jsp