Thymeleaf TH: объект с TH: с переменнойJAVA

Программисты JAVA общаются здесь
Anonymous
Thymeleaf TH: объект с TH: с переменной

Сообщение Anonymous »

Я пытаюсь централизовать свои имена атрибутов модели весной в классе модели, чтобы лучше рефакторировать безопасность, но я сталкиваюсь с постоянными проблемами, пытаясь использовать эти константы с помощью объекта в формах тимелиста. При доступе к константам для TH: если или th: каждый работает хорошо, Th: объект кажется проблематичным. < /P>
Моя цель - иметь единый источник истины для всех имен атрибутов моделей (например, «Docorsearchform»), используя общественные статические константы окончательной строки в классе Java, и для использования этих констант в обоих моих Backend Spring -Controllers и MyMemerefef. Это гарантирует, что если я изменю имя атрибута модели, я изменяю его только в одном месте.

Код: Выделить всё

    public final class ModelConstants {

public static final String DOCTOR_SEARCH_FORM = "doctorSearchForm";
public static final String DOCTOR_SEARCH_RESULTS = "doctorSearchResults";
public static final String PAGE_ALERT_LIST = "pageAlerts";

private ModelConstants() {}
}
< /code>
Controller Class < /p>
@GetMapping("/booking")
public String booking(Model model) {
if (!model.containsAttribute(ModelConstants.DOCTOR_SEARCH_FORM)) {
model.addAttribute(ModelConstants.DOCTOR_SEARCH_FORM, new DoctorSearchDto());
}
return "booking";
}
< /code>
Template (html) < /p>
    th:with="searchForm=${#vars[T(com.example.model.ModelConstants).DOCTOR_SEARCH_FORM]}">

 // ISSUE HERE

...



< /code>
thymeleaf, похоже, не нравится мне, пытаясь связать A с использования объекта Th: и объект формы, на который ссылаются переменная, и добавлено длинное исключение, с одним из сообщений, указавших: < /p>
IllegalStateException: Neither BindingResult nor plain target object for bean name 'searchForm' available as request attribute
Я попытался установить атрибут элемента «id 'для' searchform ', а при проверке сгенерированного HTML -кода он показывает фактический объект DoctorSearchDto и его значения, сохраненные:

Когда я изменяю «форму поиска» на фактическое имя объекта в модели - 'Doctorsearchform', все работает нормально, но он каким -то образом побеждает цель получения централизованного класса для имен. Чего я пытаюсь достичь возможным?

Подробнее здесь: https://stackoverflow.com/questions/796 ... h-variable

Вернуться в «JAVA»