Тип ввода формы DateTime с использованием проблемы Thymeleaf + Spring MVC - PullRequest
0 голосов
/ 01 октября 2019

Я изо всех сил пытаюсь использовать Java LocalDateTime scheduleDateTime в форме Thymeleaf и получить его обратно, чтобы сохранить его в базе данных. Я получаю следующее сообщение об ошибке:

Свойство компонента 'campaignExecution' недоступно для чтения или имеет недопустимый метод получения: соответствует ли тип возвращаемого значения метода получения параметру установщика?

Itдействительно из-за поля даты и времени. Если я удаляю его из html-формы, все работает нормально, и я вижу данные из объекта, созданного в контроллере.

Мой объект содержит следующее вместе с геттером и сеттером, возвращающим тип (LocalDateTime):

@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm") 
private LocalDateTime scheduledDateTime;

Мой контроллер инициализирует значение для now ()

@RequestMapping({ "/campaign1"})
public String requestCampaign1(Model model) {       
CampaignExecution ce = new CampaignExecution();
LocalDateTime localDateTime = LocalDateTime.now();
ce.setScheduledDateTime(localDateTime);
model.addAttribute("campaignExecution", ce);

И это форма:

    <form id="f" name="f" th:action="@{/campaign1}"
        th:object="${campaignExecution}" method="post">
        <div>
            Schedule a date :
            <input type="datetime-local" th:field=*{campaignExecution.scheduledDateTime} />
        </div>
        <hr>
        <div>Parameters</div>
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>

1 Ответ

0 голосов
/ 01 октября 2019

Намного проще, чем я думал. Для th: field вы не можете использовать несколько объектов, а только «объект формы». Я использовал полный классификатор: имя объекта. Имя свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...