Отправить объект списка из тимилиста в контроллер - PullRequest
0 голосов
/ 13 мая 2019

У меня большая проблема с сохранением списка объектов из Thymeleaf на контроллере. Список объектов в тимелии сгенерирован Jquery. но я не знаю, как получить данные в контроллер, этот список объектов не знает размер. Потому что пользователи могут добавить его в любое время. Помогите, пожалуйста, отправить объект списка в тимелии на контроллер.

Я создал новый класс с 1 свойством: ArrayList loaiDoans; «LoaiDoan» - это объект, который я хочу сохранить. И использование этого класса является объектом для сохранения списка «LoaiDoan» от тимелиста до контроллера. Но Лист не знает размер в первую очередь. Потому что он переродился в тимелист. При первой загрузке модели список содержит пустую модель, поэтому список не отображается на экране.

Это мой класс

public class ListLoaiDoan {
    private ArrayList<LoaiDoan> loaiDoans;
//Getter Setter
}

Мой объект списка привязок контроллера от контроллера к тимелию

@RequestMapping("/luunhieuobject")
public String LoadNhieuObjectCungLuc(Model model) {
    ListLoaiDoan listLoaiDoanAAA = new ListLoaiDoan();
    model.addAttribute("listLoaiDoan111",listLoaiDoanAAA);
            return "/MHtrangchu/LuuNhieuObjCungLuc";
        }
//This is the method save list Object from thymeleaf to controller
@PostMapping("/luunhieuobject")
public String processQuery(@ModelAttribute("listLoaiDoan111") ListLoaiDoan listLoaiDoan) {
System.out.println(listLoaiDoan.getLoaiDoans() != null ? listLoaiDoan.getLoaiDoans().size() : "List Empty");
              System.out.println("--");
              return "/MHtrangchu/LuuNhieuObjCungLuc";
   }

LuuNhieuObjCungLuc.html

<form th:object="${listLoaiDoan111}" method="post" th:action="@{/luunhieuobject}">

<!--INPUT FIELDS-->
        <div class="row">
            <div class="col">
                <div id="movieList">
                    <div class="row">
                        <div style="margin-left:100px;" class="col-4 form-group">tenloaidoan</div>
                        <div style="margin-left:100px;" class="col-4 form-group">madoan</div>
                    </div>
                    <div class="row item" th:each="row, stat : ${listLoaiDoan111.loaiDoans}">

                        <div class="col-lg-6 form-group">
                            <input th:field="*{loaiDoans[__${stat.index}__].tenloaidoan}" type="text" class="form-control"/>
                        </div>
                        <div class="col-lg-6 form-group">
                            <input th:field="*{loaiDoans[__${stat.index}__].madoan}" type="text" class="form-control"/>
                        </div>
                    </div>
                </div>
            </div>
        </div>
<!--ADD NEW ROW BUTTON-->
        <div class="row">
            <div class="col">
                <button type="button" class="btn btn-success" onclick="addRow()">Add row</button>
            </div>
        </div>
        <!--SUBMIT FORM BUTTON-->
        <div class="row text-right">
            <div class="col">
                <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </div>
     </form>

Это не отображает ничего на экране, я знаю, что, поскольку "listLoaiDoanAAA" является пустым, и "th: каждому" в тимилиф ничего не нужно показывать, как сгенерировать тег "input" и сохранить в контроллере, помогите мне!

1 Ответ

0 голосов
/ 13 мая 2019

Я решил эту проблему!Установите размер для ArrayList, прежде чем связывать его с тимелистом!Я спасаю свой день.спасибо Stackoverflow.

я исправляю свой контроллер вот так

@GetMapping("/luunhieuobject")
        public String LoadNhieuObjectCungLuc(Model model) {
            ListLoaiDoan listLoaiDoanAAA = new ListLoaiDoan();
            ArrayList<LoaiDoan> LDD = new ArrayList<LoaiDoan>(10);
            listLoaiDoanAAA.setLoaiDoans(LDD);
            model.addAttribute("listLoaiDoan111", listLoaiDoanAAA);
            return "/MHtrangchu/LuuNhieuObjCungLuc";
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...