반응형
Spring MVC Controller에 대한 GET 요청에서 날짜 매개 변수를 수락하는 방법은 무엇입니까?
YYYY-MM-DD 형식의 날짜를 스프링 컨트롤러에 보내는 GET 요청이 있습니다. 컨트롤러 코드는 다음과 같습니다.
@RequestMapping(value="/fetch" , method=RequestMethod.GET)
public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) {
//Content goes here
}
Firebug로 확인하면서 요청이 올바르게 전송됩니다. 오류가 발생합니다.
HTTP 상태 400 : 클라이언트가 보낸 요청이 구문 상 올바르지 않습니다.
컨트롤러가이 형식의 날짜를 수락하도록하려면 어떻게해야합니까? 도와주세요. 내가 뭘 잘못하고 있죠?
좋아, 나는 그것을 해결했다. 하루 종일 논스톱 코딩 후 피곤하고 어리석은 일을 그리워하는 사람을 위해 작성하십시오.
@RequestMapping(value="/fetch" , method=RequestMethod.GET)
public @ResponseBody String fetchResult(@RequestParam("from") @DateTimeFormat(pattern="yyyy-MM-dd") Date fromDate) {
//Content goes here
}
예, 간단합니다. DateTimeFormat 주석을 추가하십시오.
이것은 프론트 엔드에서 날짜 형식을 얻으려고했던 것입니다.
@RequestMapping(value = "/{dateString}", method = RequestMethod.GET)
@ResponseBody
public HttpStatus getSomething(@PathVariable @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String dateString) {
return OK;
}
그것을 사용하여 원하는 것을 얻을 수 있습니다.
... 또는 올바른 방법으로 응용 프로그램 전체에서 날짜의 직렬화 / 역 직렬화에 대한 일관된 규칙을 가질 수 있습니다. 이것을 application.properties에 넣으십시오.
spring.mvc.date-format=yyyy-MM-dd
PathVariable을 사용하려면 아래 예제 메소드를 사용할 수 있습니다 (모든 메소드는 동일하고 동일 함).
//You can consume the path .../users/added-since1/2019-04-25
@GetMapping("/users/added-since1/{since}")
public String userAddedSince1(@PathVariable("since") @DateTimeFormat(pattern = "yyyy-MM-dd") Date since) {
return "Date: " + since.toString(); //The output is "Date: Thu Apr 25 00:00:00 COT 2019"
}
//You can consume the path .../users/added-since2/2019-04-25
@RequestMapping("/users/added-since2/{since}")
public String userAddedSince2(@PathVariable("since") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date since) {
return "Date: " + since.toString(); //The output is "Date: Wed Apr 24 19:00:00 COT 2019"
}
//You can consume the path .../users/added-since3/2019-04-25
@RequestMapping("/users/added-since3/{since}")
public String userAddedSince3(@PathVariable("since") @DateTimeFormat(pattern = "yyyy-MM-dd") Date since) {
return "Date: " + since.toString(); //The output is "Date: Thu Apr 25 00:00:00 COT 2019"
}
반응형
'IT story' 카테고리의 다른 글
특정 확장자를 가진 모든 파일을 찾아서 바꾸는 PowerShell 스크립트 (0) | 2020.07.27 |
---|---|
BufferedImage를 어떻게 복제합니까 (0) | 2020.07.27 |
클래스에 함수가 정의되어 있는지 확인하는 가장 빠른 방법은 무엇입니까? (0) | 2020.07.27 |
기본 Django 관리 템플릿을 재정의하고 확장하는 방법은 무엇입니까? (0) | 2020.07.27 |
ImportError : 이름이 bs4 인 모듈 없음 (BeautifulSoup) (0) | 2020.07.27 |