• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dynamiczne pola Thymeleaf brak reakcji na dodanie kolejnego inputa. SPRING JAVA

Object Storage Arubacloud
0 głosów
437 wizyt
pytanie zadane 5 listopada 2017 w Java przez Szymon Ciamaga Obywatel (1,980 p.)

Witam potrzebne mi są dynamiczne pola do tego zadania używam Thymeleaf.

Oto mój kod

 

    @RequestMapping(value = "/add_equipment", params = {"save"}, method = RequestMethod.POST)
    public String saveEquipments(@Valid EquipmentForm equipmentForm, BindingResult bindingResult) {

        if (bindingResult.hasErrors()) {
            return "redirect:/";
        }

        System.out.println(equipmentForm.getEquipments());
        return "redirect:/system/add_equipment";
    }

    @RequestMapping(value = "/add_equipment", params = {"addEquipment"})
    public String addRow(EquipmentForm equipmentForm) {
        equipmentForm.getEquipments().add(null);
        return "logistics/my_logistic/add_equipment";
    }

    @RequestMapping(value = "/add_equipment", params = {"removeEquipment"})
    public String removeEquipment(EquipmentForm equipmentForm, HttpServletRequest req) {

        Integer rowId = Integer.valueOf(req.getParameter("removeEquipment"));
        equipmentForm.getEquipments().remove(rowId.intValue());
        return "logistics/my_logistic/add_equipment";
    }
@Component
public class EquipmentForm {

    private List<String> equipments = new ArrayList<>();

    public List<String> getEquipments() {
        return equipments;
    }

    public void setEquipments(List<String> equipments) {
        this.equipments = equipments;
    }

    @Override
    public String toString() {
        return "EquipmentForm{" +
                "equipments=" + equipments +
                '}';
    }
}

html

 


        <form action="#" method="post" th:action="@{/system/add_equipment}">

            <fieldset class="row">
                <legend>What do you like?</legend>
                <button class="btn teal" type="submit" name="addEquipment">Add equipment
                    <i class="mdi-content-add left"></i>
                </button>

                <div class="row" th:each="row,rowStat : *{equipments}">
                    <div class="col s6">
                        <input type="text" th:field="*{equipments[__${rowStat.index}__]}"/>
                    </div>

                    <div class="col s6">
                        <button class="btn red" type="submit" name="removeTaste" th:value="${rowStat.index}">Remove
                            <i class="mdi-action-delete right waves-effect"></i>
                        </button>
                    </div>
                </div>
            </fieldset>


            <div class="row" style="margin-top: 40px">
                <button class="btn indigo waves-effect waves-light" type="submit" name="save">Submit
                    <i class="mdi-content-send right"></i>
                </button>
            </div>
        </form>

 

Na ekranie nie ma żadnego inputa są tylko dwa przyciski by dodać nowy oraz wyslać formularz.

Po naciśnięciu przycisku, który powinien dodać kolejny input nic się nie dzieje. ps widziałem dokumentacje thymeleaf na ten temat. Pozdrawiam.

1 odpowiedź

0 głosów
odpowiedź 5 listopada 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Thymeleaf służy do renderowania odpowiedzi HTML a nie dynamicznych zmian po stronie klienta. Gdy odpowiedź zostanie wysłana do użytkownika imputy powinieneś dodawać z wykorzystaniem JS.

Podobne pytania

+1 głos
1 odpowiedź 371 wizyt
0 głosów
1 odpowiedź 1,394 wizyt
pytanie zadane 26 stycznia 2019 w Java przez niezalogowany
0 głosów
2 odpowiedzi 1,283 wizyt
pytanie zadane 23 stycznia 2018 w Java przez niezalogowany

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...