Запрос параметра не возвращает фактическое значение - PullRequest
1 голос
/ 17 апреля 2019

У меня есть таблица, которая не находится в форме, но я хочу, чтобы кнопка в каждой строке коррелировала и удаляла контакт из этой строки таблицы при ее нажатии.Я мог бы сделать вызов ajax, но я надеялся просто обработать его с помощью метода пружинной загрузки контроллера.Вот как я это настроил.

@RequestMapping(value="/removeContact")
public String removeContact(final CarrierAppointment carrierAppointment, final HttpServletRequest req, Model model){
    final Integer rowId = Integer.valueOf(req.getParameter("trashContact"));
    carrierAppointment.getContactList().remove(rowId.intValue());
    model.addAttribute("carrierAppointment", carrierAppointment);
    return  "redirect:/carrierAppointment/details/"+carrierAppointment.getId();
}

                        <table class="table table-striped" data-classes="table-no-bordered" data-striped="true" data-show-columns="true" >
                            <thead>
                            <tr>
                                <th>Contact Type</th>
                                <th>Contact Name</th>
                                <th>Contact's Email</th>
                                <th>Contact's Phone</th>
                                <th></th>
                                <th th:if="${role.isCarrierAdmin}" class="text-right"><a class="trigger-add-contact btn btn-default" id="addCommercialContact" name="addCommercialContact"><span class="fa fa-plus"></span></a></th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr th:each="contact,stat : *{carrier.contactList}" th:if="*{carrier.contactList[__${stat.index}__].contactTable}=='Commercial Lines'">
                                <td>
                                    <select class="form-control" th:field="*{carrier.contactList[__${stat.index}__].contactType}">
                                        <option value="Account Manager">Account Manager</option>
                                        <option value="Marketing Manager">Marketing Manager</option>
                                        <option value="Underwriter">Underwriter</option>
                                    </select>
                                </td>
                                <td> <input type="text" class="form-control" th:field="*{carrier.contactList[__${stat.index}__].contactName}"/></td>
                                <td> <input type="text" class="form-control" th:field="*{carrier.contactList[__${stat.index}__].contactEmail}"/></td>
                                <td><input type="text" class="form-control" th:field="*{carrier.contactList[__${stat.index}__].contactPhone}"/></td>
                                <td> <input type="hidden" value='Commercial Lines' th:field="*{carrier.contactList[__${stat.index}__].contactTable}"/></td>
                                <td class="text-right" th:if="${role.isCarrierAdmin}"> <button type="button" name="trashContact" th:value="${stat.index}" th:onclick="'window.location.href=\'/removeContact\''"  class="btn btn-danger "><span class="fa fa-trash"></span></button></td>
                            </tr>
                            </tbody>
                        </table>

Строка кода, запрашивающая параметр и получающая значение, - вот где мой код зависает.Возвращается нуль вместо значения.Любая идея, как настроить эту строку кода, чтобы он действительно получил значение, которое существует?Может быть, так, как я настроил onclick, он на самом деле не посылает значение строки в метод контроллера?

Это именно то место, где в коде он зависает:

    public String getParameter(String name) {
        this.handleQueryParameters();
        ArrayList<String> values = (ArrayList)this.paramHashValues.get(name);
        if (values != null) {
            return values.size() == 0 ? "" : (String)values.get(0);
        } else {
            return null;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...