Thymeleaf связывает выбранное значение из таблицы - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть таблица с несколькими элементами, сгенерированными из списка, и у каждого элемента таблицы из этого списка есть кнопка. При нажатии на эту кнопку появляется запрос на отправку, который должен связать значения из этого элемента данных таблицы собъект @ModelAttribute при весенней загрузке.Проблема в том, что я могу отобразить весь список, но я хочу связать только элемент таблицы, где была нажата кнопка.

<div class="table-responsive">
   <form th:action="@{/saveAd}" th:object="${object}" method="POST">
      <table class="table table-sm table-hover">
         <thead class="thead-dark">
            <tr>
               <th>Image</th>
               <th>Title</th>
               <!-- <th style="width: 16.66%">Link</th> -->
               <th>Price</th>
               <th>City</th>
            </tr>
         </thead>
         <tbody id="myTable">

            <th:block th:each="element, itemStat: *{lista}">

               <tr
                  th:onclick="'javascript:rowClicked(\'' + *{lista[__${itemStat.index}__].url} + '\');'">
                  <input type="hidden" readonly="readonly"
                     th:name="?"
                     th:value="${element.getUrl()}" />
                  <td>
                     <input type="hidden" readonly="readonly" th:name="img" th:value="${element.getImg()}" /> 
                     <img th:src="*{lista[__${itemStat.index}__].img}" class="size" name="img" />
                  </td>
                  <td>
                     <input type="hidden" readonly="readonly" th:name="?" th:value="${element.getTitle()}" />
                     <span th:text="*{lista[__${itemStat.index}__].title}"></span>
                  </td>
                  <td>
                     <input type="hidden" readonly="readonly" th:name="?" th:value="${element.getPrice()}" />
                     <span th:text="*{lista[__${itemStat.index}__].price}"></span>
                  </td>
                  <td>
                     <input type="hidden" readonly="readonly" th:name="?" th:value="${element.getCity()}" />
                     <span th:text="*{lista[__${itemStat.index}__].city}"></span>
                  </td>
                  <td><input class="btn btn-danger" type="submit"
                     value="Save"></td>
               </tr>
            </th:block>
         </tbody>
      </table>
   </form>
</div>

Контроллер:

@RequestMapping(path = "/saveAd", method = RequestMethod.POST)
    public String saveAd(@ModelAttribute("Value") ListCreationAutovitDto listCreationAutovitDto) {
        return "home";
    }

Iу меня есть скрытый тип ввода для каждого тд, который должен отображать значения, но я пытался назвать его по-разному, но я не могу заставить его работать. Есть ли способы привязать только значения, где была нажата кнопка?

1 Ответ

0 голосов
/ 25 сентября 2018

Идея 1: каждый td должен содержать form, указывающий на метод вашего контроллера.Затем свяжите значения, которые вы хотите передать в модель, используя скрытые input поля в форме.Затем каждая кнопка выполняет отправку для формы, в которой она находится.

Идея 2: Если вы отображаете json на свои объекты java в своем приложении, вы можете создать тело запроса json в JavaScript, чтобы оно содержало толькоматериал, который вы хотите для этого запроса

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