springMVC 파라미터 분석 과 fastjson 사용자 정의 직렬 화 반 직렬 화 된 구덩이 채취 길

5845 단어 springMvc
앞에서 말 했 듯 이 전단 에서 백 엔 드 로 데 이 터 를 전달 할 때 ajax+FormData 대상 을 사 용 했 습 니 다.Content-type 의 문 제 를 알 아차 리 지 못 했 습 니 다.서버 는 SpringMVC 를 사 용 했 습 니 다.Controller 는 하나의 model 을 사용 하여 직접 받 았 고 주 해 를 추가 하지 않 았 습 니 다.오늘 새로운 요 구 를 언급 하여 전 달 된 데 이 터 를 json 형식 으로 해 야 합 니 다.json 형식 이 되 어야 하 는 이상 Content-type 의 값 도 application\json 으로 수정 해 야 합 니 다.자,전단 수정 이 끝 났 습 니 다.테스트 할 때 문제 가 발견 되 었 습 니 다.서버 가 vaidate 를 열 었 기 때문에 폼 검증 을 해 야 합 니 다.인증 이 모두 통과 되 지 않 았 습 니 다.Model 의 모든 속성 이 null 인 것 을 알 게 되 었 습 니 다.어쩐지.왜 다 비 었 어?springMVC 는 제 이 슨 형식의 인 자 를 해석 할 수 없 기 때문에 제 이 슨 이라는 형식의 HttpMessage Convert(제 가 추가 한 것 은 fastjson)와@RequestBody 주 해 를 추가 해 야 하기 때문에 추가 하면 됩 니 다.또 하나의 생각 이 떠 올 랐 다.왜 이전의 FormData 전달 데이터 인 SpringMVC 가 받 아들 일 수 있 을 까?폼 을 살 펴 보 니 FormData 대상 이 전달 하 는 속성 을 사용 하여 폼 Content-type 을 multipart/form-data 로 바 꾸 었 고,spring Mvc 는 이러한 매개 변 수 를 분석 한 후 request 에 배치 할 수 있 기 때문에 우리 가 어떠한 주석 도 추가 하지 않 았 을 때 contrller 의 기본 매개 변수 해석 기 는 파 라 메 터 를 정확하게 해석 할 수 있 으 나 json 형식 은 달 라 졌 다.
또 하나의 새로운 문제 가 발생 했다.우리 의 bean 대상 에 boolean 형식 속성 이 존재 한다.전단 에서 전달 하 는 매개 변 수 는 문자열 형식의 데이터'on'이 고 fastjson 은 또 파업 했다.그 는 이 물건 을 해석 할 수 없고'on'을 Boolean 으로 바 꿀 수 없다.그 전에 SpringMVC 도 바 꿀 수 없고 Convert 를 추가 하면 된다.그러면 Fastjson 은 어떻게 추가 해 야 합 니까?
public class BooleanDeserializer implements ObjectDeserializer {

    @Override
    public <T> T deserialze(DefaultJSONParser defaultJSONParser, Type type, Object fieldName) {
        //  json           ,               
        final Object parse = defaultJSONParser.parse(fieldName);
        if (parse == null) {
            return (T) Boolean.valueOf(false);
        }
        if ("on".equals(parse) || "true".equals(parse)) {
            return (T) Boolean.valueOf(true);
        } else {
            return (T) Boolean.valueOf(false);
        }
    }

    @Override
    public int getFastMatchToken() {
        return 0;
    }
}
//               Fastjson   ,               
@JSONField(deserializeUsing = BooleanDeserializer.class)
private Boolean remembered;

FastJSon 사용 문서

좋은 웹페이지 즐겨찾기