version: JHipster 4.8.0
증상
1004lucifer
JHipster 프로젝트 생성 하고 admin 로그인 후 '관리자=>Audit' 메뉴 들어가게되면 화면이 오류가 나며 정상적으로 보여지지 않게된다.
"type" : "http://www.jhipster.tech/problem/problem-with-message",
"title" : "Bad Request",
"status" : 400,
"detail" : "Failed to convert value of type 'java.lang.String[]' to required type 'java.time.LocalDate'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam java.time.LocalDate] for value '2017년-08월-26일'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2017년-08월-26일]",
"message" : "error.http.400"
}
디버깅을 해보니 날짜를 넘겨줄 때 '2017-08-26' 이렇게 넘겨줘야 하는걸 년/월/일 을 붙여서 넘겨주고 있었다.
Angular 에서 기본적으로 사용하는 DatePipe 모듈에서 timezone 개념이 있는데 EndUser의 시스템의 로케일을 기본으로 가져온다고 한다.
해결방법
아래와 같이 Locale 을 en-US 형식으로 DatePipe를 생성하여 정상적으로 나오는 것을 확인했다.
1004lucifer
src/main/webapp/app/admin/audits/audits.component.ts
export class AuditsComponent implements OnInit {
audits: Audit[];
fromDate: string;
itemsPerPage: any;
links: any;
page: number;
orderProp: string;
reverse: boolean;
toDate: string;
totalItems: number;
datePipe: DatePipe;
constructor(
private auditsService: AuditsService,
private parseLinks: JhiParseLinks,
private paginationConfig: PaginationConfig,
// private datePipe: DatePipe
) {
this.itemsPerPage = ITEMS_PER_PAGE;
this.page = 1;
this.reverse = false;
this.orderProp = 'timestamp';
this.datePipe = new DatePipe('en-US');
}
...
}




댓글
댓글 쓰기