class LocalDatePropertyEditor extends PropertyEditorSupport {

    @Override
    public void setAsText(String dateFieldName) throws IllegalArgumentException {
        Map<String, String[]> parameterMap = webRequest.getParameterMap();

        Integer year = returnZeroWhenNotValid(parameterMap, dateFieldName + ".year", ChronoField.YEAR, LocalDate.MIN.getYear());
        Integer month = returnZeroWhenNotValid(parameterMap, dateFieldName + ".monthValue", ChronoField.MONTH_OF_YEAR, LocalDate.MIN.getMonthValue());
        Integer day = returnZeroWhenNotValid(parameterMap, dateFieldName + ".dayOfMonth", ChronoField.DAY_OF_MONTH, LocalDate.MIN.getDayOfMonth());

        try {
            setValue(LocalDate.of(year, month, day));
        } catch (Exception ex) {
            LOG.error(ex);
            setValue(LocalDate.MIN);
        }
    }

    public  LocalDatePropertyEditor(WebRequest webRequest);

}