똑같은 삽질은 2번 하지 말자
JSONArray JSONObject @ModelAttribute 본문
JSON이란 Javascript Object Notation 의 약자
데이터를 교환할때 기계도 사람도 쉽게 이해할 수 있는 아주 많이 자주 이용되고 있는 데이터 표현 방법
1. JSONObject
- 기본구조 : {String name : Value, String name2 : Value2 ...}
- 구조에 대한 설명
: JSONObject는 '{' 로 시작하고 '}' 로 끝내어 표현한다.
: {} 안에는 String으로된 Name과 Value의 쌍을 ':' 로 구분하여 사용한다.
: Name 과 Value의 구분은 ',' 로 한다.
: 비순서화된 SET
- 사용법(예)
2. JSONArray
- 기본구조 : [{String name : Value}, {String name2 : Value2} ...]
- 구조에 대한 설명
: JSONArrayt는 '[' 로 시작하고 ']' 로 끝내어 표현한다.
: []안에는 JSONObject 나 String 값 등을 담을 수 있다.
: 각 object나 String 의 구분은 ',' 로 한다.
: 순서화된 SET
- 사용법(예)
이번엔 이 JSONArray를 이용해 프리젠테이션 측에 ArrayList 를 JSONArray 변환해서 보내 보았다.
@ModelAttribute
@ModelAttribute 선언 후 자동으로 진행되는 작업들은 다음과 같다.
① 파라미터로 넘겨 준 타입의 오브젝트를 자동으로 생성한다.
위의 코드에서는 MemberInfo 클래스의 객체 info를 자동으로 생성한다.
이때 @ModelAttribute가 지정되는 클래스는 빈 클래스라야 한다.
즉 MemberInfo 클래스는 beans 클래스라야 한다.
그리고 getter와 setter가 명명 규칙에 맞게 만들어져 있어야 한다.
② 생성된 오브젝트에(info) HTTP로 넘어 온 값들을 자동으로 바인딩한다.
위의 코드의 경우는 name=Gildong&age=25seq=327 이렇게 들어오는
name, age, seq의 값이 MemberInfo의 해당 변수의 setter를 통해서
해당 멤버 변수에로 binding된다.
③ @ModelAttribute 어노테이션이 붙은 객체가(여기서는 MemberInfo 객체) 자동으로 Model 객체에 추가되고
따라서 MemberInfo 객체가 .jsp 뷰단까지 전달이 된다.
Commander 객체하고 별 다를게 없다고 생각한 친구인데 의외로 코드를 간단하게 만들어 줄 수 있을꺼같다.