Nano Hash - криптовалюты, майнинг, программирование

Создайте фрагмент формы в Thymeleaf (и пружине)

Сначала я создал форму в простом HTML с помощью Thymeleaf, и все было в порядке. Затем перешел к шагу 2, и я переместил свою форму во фрагмент. Я назвал фрагмент так:

<div th:insert="~{address::form($(address)}"></div>

а фрагмент (который находится в address.html) выглядит следующим образом:

<form th:fragment="form(address)" action="#" th:action="@{/address}" th:object="${address}" method="post">
   
<label>Street<label><span><input type="text" th:field="*{street}"></span>
<label>County:</label>
  <span>
    <select  th:field="*{county}">
            <option th:each="s : ${countyList}" th:value="${s.value}" th:text="${s.text}"></option>
    </select>
  </span>
...

но это не работает и выдает: java.lang.IllegalStateException: Ни BindingResult, ни простой целевой объект для bean-компонента с именем street, доступный в качестве атрибута запроса

Пожалуйста, помогите с тем, как переместить всю форму во фрагмент Thymeleaf? Также добавьте идеи для комбо, чтобы я мог получить их список из бина модели. Спасибо!

PS контроллер сейчас выглядит так (добавление и редактирование), но вместо этого он будет работать, чтобы сделать его 1 функцией:

    @GetMapping(value="/address")
    public String newAddress(AddressModel address, Model model) {
        model.addAttribute("address", address);
        model.addAttribute("countyList", countyService.listCombo());      
        ...
        return "index";
    }

    @GetMapping(value="/address/{id}")
    public String editAddress(Model model, @PathVariable("id") Long id) {
        AddressModel address = addressService.load(id);
        model.addAttribute("address", address);
        model.addAttribute("countyList", countyService.listCombo());
        ...
        return "index";
    }

  • Не могли бы вы добавить еще и контроллер? Похоже, вы не удовлетворяете все зависимости, которые есть у фрагмента. 02.07.2020

Ответы:


1

В моем случае проблема возникла с неожиданного направления. Я поместил 2 фрагмента address :: form (для создания формы) и address :: list (для отображения списка адресов) в один и тот же файл и каким-то образом по какой-то пока неизвестной причине эти 2 фрагмента не работают нормально, когда в тот же файл. И ошибка не очень помогла. Но как только я поместил их в два отдельных файла, например: addressForm :: form и addressList :: list, все было в порядке. Интересно, что если я сохраню фрагменты в одном файле, но меняю порядок, в котором они определены, я могу правильно отобразить страницу, но все равно получаю ошибку в журналах. Странные вещи.

02.07.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..