#java #spring-boot #thymeleaf
#java #весенняя загрузка #thymeleaf
Вопрос:
Проект Spring-Boot Thymeleaf не заполняет поле тип ввода = «время» при открытии HTML-формы. Вот как это работает:
<input type="time" class="form-control" id="inputTime" th:value=${CarEntity.timeOperation} required>
И вот оно:
<input type="time" class="form-control" id="inputTime" th:field="*{timeOperation}" required>
Или так:
<input type="time" class="form-control" id="inputTime" th:field="*{timeOperation}" th:value=${CarEntity.timeOperation} required>
Поле остается пустым.
И если я использую <тип ввода = «текст>, тогда все работает нормально.
<form id="f-pr-03" th:method="POST" th:action="@{/edit/{id}(id=${carEntity.getId()})}" th:object="${carEntity}">
That's how everything works and displays and reads.
<label for="inputName">Input name</label>
<input type="text" class="form-control" id="inputName" th:field="*{name}" required>
But this is not displayed
<label for="inputPTTime">Input time</label>
<input type="time" class="form-control" id="inputPTTime" th:field="*{timeOperation}" max="17:50" min="00:01" required>
And this is how it is displayed, but not transmitted by the POST method
<label for="inputPTTime">Input time</label>
<input type="time" class="form-control" id="inputPTTime" th:value=${CarEntity.timeOperation} max="17:50" min="00:01" required>
<button type="submit" name="action">Save</button>
</form>
Комментарии:
1. Просто для пояснения: ваш первый пример использования
th:value=${CarEntity.timeOperation}
должен работать правильно, еслиtimeOperation
возвращает строку, такую как13:30
. Смотрите документацию здесь . Правильно ли работает ваш первый пример?2. Или, если вы также хотите отобразить секунды, строка может быть примерно такой:
13:30:45
. (Опять же, просто для пояснения.)3. Первый пример работает правильно. но мне нужно, чтобы значение не только считывалось из переменной, но и записывалось в переменную timeoperation.
4. Есть ли у вас
<form>
th:object
атрибут with для этого ввода?5. Первый вариант записывает только время в поле ввода. но когда я использую метод post, из этого поля ничего не считывается (null). И во второй версии оно считывается из него, но не записывается. Как мне заставить работать и чтение, и запись?
Ответ №1:
Я не знаю, если это все еще актуально, так как прошло какое-то время. Thymeleaf предоставляет специальный атрибут th:field, отвечающий за привязку полей ввода к свойству в классе bean. Этот атрибут ведет себя по-разному в зависимости от того, подключен ли он к. Thymeleaf поддерживает все новые типы ввода, представленные в HTML5, такие как type=»color» или type =»datetime».
Пожалуйста, проверьте это для получения дополнительной информации:
https://frontbackend.com/thymeleaf/working-with-forms-in-thymeleaf