Моя цель - иметь единый источник истины для всех имен атрибутов моделей (например, «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
Когда я изменяю «форму поиска» на фактическое имя объекта в модели - 'Doctorsearchform', все работает нормально, но он каким -то образом побеждает цель получения централизованного класса для имен. Чего я пытаюсь достичь возможным?
Подробнее здесь: https://stackoverflow.com/questions/796 ... h-variable