何も起こらないような事態が発生した場合、例外をスローするのが適切な方法です。あなたはJavaの8時間のAPI(またはジョダ時間のようなもの)を使用している場合は、簡単にisBefore()
を使用することによって、これを達成することができます:
if (to.isBefore(from)) {
// Write your own exception class
throw new InvalidParameterException("To cannot be before from");
}
今例外がスローされた場合、あなたがしたい何かをする@ExceptionHandler
を使用することができます。たとえば:あなたはタイプLocalDate
の@RequestParam
Sをマッピングすることができ
@Component
public class LocalDateStringFormatter implements Formatter<LocalDate> {
// Or use a custom formatter with a custom pattern
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE;
@Override
public LocalDate parse(String isoDateString, Locale locale) throws ParseException {
return LocalDate.parse(text, FORMATTER);
}
@Override
public String print(LocalDate date, Locale locale) {
retun date.format(FORMATTER);
}
}
この方法:あなたがリクエストパラメータとして日付を使用したい場合は
@ExceptionHandler(InvalidParameterException.class)
@ResponseBody
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
public ErrorMessageDTO handleInvalidParameter(InvalidParameterException ex) {
// Write your own DTO to return an exception
return new ErrorMessageDTO(ex.getMessage());
}
、あなたはこれを適切に行うためにFormatter<LocalDate>
を使用する場合があります。
投稿はこれまで行ったことがあります。 – FuSsA
dateFrom.compare(dateTo)= -1(<から)/ 0(=から)/ 1(から>)。したがって、compareメソッドを実装する必要があります。 – Zorglube
いくつかのコードを表示できますか?物事を理解する方が良いでしょう。 –