반응형
var data = {};
data["종목목록[" + index + "].종목코드"] = code;
data["종목목록[" + index + "].종목명"] = codeName;
data["종목목록[" + index + "].구분"] = 종목타입 == 0 ? 'KOSPI' : 'KOSDAQ';
var request = $.ajax({
url : '/종목/동기화',
type : 'post',
data : data
});
Controller
public class 종목Controller {
private 종목Service 종목Service;
value = { Url.종목.동기화 }, method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) (
public JsonResult get종목동기화(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, //
Lists 종목목록, //
PrettyLog prettyLog//
) {
JsonResult jsonResult = new JsonResult();
jsonResult.setCode(Code.SUCC);
종목Service.sync(종목목록.get종목목록(), prettyLog);
return jsonResult;
}
}
Entity
/**
* 종목 Class
*/
public class 종목 {
private String test;
private String 종목코드;
private String 종목명;
private Date regDt;// 등록일
private String 구분;// kospi,kosdaq
/**
* 조회
*
* @return 종목코드
*/
public String get종목코드() {
return this.종목코드;
}
/**
* 설정
*
* @return 종목코드
*/
public void set종목코드(String 종목코드) {
this.종목코드 = 종목코드;
}
/**
* 조회
*
* @return 종목명
*/
public String get종목명() {
return this.종목명;
}
/**
* 설정
*
* @return 종목명
*/
public void set종목명(String 종목명) {
this.종목명 = 종목명;
}
/**
* 등록일 조회
*
* @return regDt
*/
public Date getRegDt() {
return this.regDt;
}
/**
* 등록일 설정
*
* @return regDt
*/
public void setRegDt(Date regDt) {
this.regDt = regDt;
}
/**
* kospi,kosdaq 조회
*
* @return 구분
*/
public String get구분() {
return this.구분;
}
/**
* kospi,kosdaq 설정
*
* @return 구분
*/
public void set구분(String 구분) {
this.구분 = 구분;
}
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
}
List Wrapper
public class Lists {
private List<종목> 종목목록;
public List<종목> get종목목록() {
return 종목목록;
}
public void set종목목록(List<종목> 종목목록) {
this.종목목록 = 종목목록;
}
}
** 이거 사용하다 보니 문제점이 있어서 추가 공유합니다.
1. data["종목목록[" + index + "].종목코드"] 이렇게 쓰는데 index가 1부터 1000 였습니다.
- 그런데 순서대로 넣었음에도 불구하고 Spring에서 자동으로 List 객체에 넣는 과정에서 1다음에 바로 1000을 넣으려고 하면서 인덱스 오류가 발생합니다.
- 해결법은 0001, 0002, ... , 1000 이렇게 하면 순서대로 들어가서 이 오류가 발생하지는 않습니다.
2. AbstractNestablePropertyAccessor 클래서 List로 자동 맵핑 해주는데 autoGrowCollectionLimit 이런 속성에 의해서 기본 최대 값이 256 입니다.
- 그래서 이 방식으로는 최대 256개 파라미터 밖에 넘기지 못합니다.
- 뭐 InitBinder를 통해서 수치를 재설정 할 수 있다고 하지만 별로 그렇게까지 하고 싶지는 않네요.
** 256개가 넘는 건 그냥 문자열로 붙여서 split 해서 처리했습니다.
반응형
'스크립트' 카테고리의 다른 글
javascript cookie getCookie setCookie (0) | 2018.11.05 |
---|---|
netstat unique ip (0) | 2018.09.10 |
javascript java rsa (0) | 2018.08.13 |
aes256 cbc javascript and java (0) | 2018.08.09 |
javascript object size (0) | 2018.07.23 |
jquery ajax ie no transport error (0) | 2018.07.17 |
윈도우 netstat grep wc 포트 커넥션 확인 (0) | 2018.07.09 |
리눅스 프로세스 생성 스크립트 (0) | 2018.06.29 |