[SPRING] Spring MVC와 Jackson으로 JSON으로 날짜 전달하기
SPRINGSpring MVC와 Jackson으로 JSON으로 날짜 전달하기
클라이언트에서 스프링 컨트롤러로 전달하고자하는 java.util.Date 필드가있는 클래스가 있습니다. 컨트롤러는 요청할 때마다 HTTP 415를 반환합니다. 찾을 수 있었던 많은 다른 질문에서 본 것처럼 사용자 지정 serializer를 추가하려고했습니다. 사용자 지정 serializer가 작동합니다. 리소스를 검색하는 컨트롤러가 리소스를 사용자 지정 형식으로 검색하지만 컨트롤러가 JSON을 인식하지 못합니다. 날짜를 완전히 삭제하면 컨트롤러가 작동하므로 해당 필드에 문제가 있음을 알 수 있습니다.
이상적으로, 나는 그것들을 디폴트의 긴 표현으로 받고 싶지만 컨트롤러가 어느 포맷을 받아들이도록 할 수는 없다.
제어 장치
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> addEvent(ModelMap model, @RequestBody Event event)
{
eventService.saveEvent(event);
return new ResponseEntity<String>(HttpStatus.CREATED);
}
직렬화 될 클래스 (getters 및 setter가 생략되었지만 주석을 거기에서도 시도했습니다.
public class Event implements Serializable
{
private static final long serialVersionUID = -7231993649826586076L;
private int eventID;
private int eventTypeID;
@JsonSerialize(using = DateSerializer.class)
private Date date;
시리얼 화기
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
@Override
public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException {
String formattedDate = dateFormat.format(date);
gen.writeString(formattedDate);
}
JSON은 내 GET 컨트롤러에서 검색 할 수 있습니다.
{"eventID":1,"eventTypeID":2,"date":"02-01-2014"}
해결법
-
==============================
1.당신은 시리얼 라이저를 가지고 있지만 디시리얼라이저가 없으므로 한 방향으로 만 작동합니다 ...
당신은 시리얼 라이저를 가지고 있지만 디시리얼라이저가 없으므로 한 방향으로 만 작동합니다 ...
또한 다음이 필요합니다.
@JsonDeserialize(using = DateDeserializer.class)
(동일한 날짜 형식을 사용하는 DateDeserializer 사용).
왜 둘 모두에 대한 하나의 인터페이스가 내게 미스테리가 아닙니다 :-)
-
==============================
2.문자열 대신 jsp의 date 객체를 아래와 같이 전달하면됩니다.
문자열 대신 jsp의 date 객체를 아래와 같이 전달하면됩니다.
var date = new Date(); var formData = {'date':date};
그리고 dto에서 java.util.Date 타입의 변수를 만든다.
from https://stackoverflow.com/questions/21505997/passing-a-date-as-json-with-spring-mvc-and-jackson by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @Controller 클래스의 트랜잭션 메소드는 트랜잭션으로 간주되지 않습니다. (0) | 2019.02.25 |
---|---|
[SPRING] Spring MVC에서 리다이렉션을 사용하는 이유는 무엇입니까? (0) | 2019.02.25 |
[SPRING] 스프링 통합 IMAP 어댑터를 사용하여 수동으로 "읽지 않음"으로 표시된 이메일을 가져 오는 방법은 무엇입니까? (0) | 2019.02.25 |
[SPRING] jpa 쿼리에서 사용자 지정 함수를 사용하는 방법? (0) | 2019.02.25 |
[SPRING] Spring Boot / Thymeleaf / Hibernate : Java Annotation을 사용한 Sessionfactory Bean (0) | 2019.02.25 |