当前位置: 首页 > 知识库问答 >
问题:

发送列表对象从thymeleaf到控制器

慕宏博
2023-03-14

我在将对象列表从Thymeleaf保存到控制器时遇到了一个大问题。thymeleaf中的对象列表由Jquery生成。但我不知道如何将数据传输到控制器,对象列表不知道大小。因为用户可以随时添加它。请帮助我将thymeleaf中的列表对象发送给控制器。

我创建了一个具有1个属性的新类:ArrayList loaiDoans;“LoaiDoan”是我想要保存的对象。使用该类是将列表“loaidon”从thymeleaf保存到控制器的对象。但名单上并没有先知道尺寸。因为那是在百里香里。第一次加载模型时,模型包含列表为空,因此列表不会显示在屏幕中。

这是我的课

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

我的控制器绑定列表对象从控制器到thymeleaf

@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>

屏幕上没有显示注释,我知道因为“listloaidoaaa”是空的,而thymeleaf中的“th:each”没有任何显示,如何生成“input”标记并保存到控制器帮助我!

共有1个答案

单于智
2023-03-14

我解决了这个问题!在将ArrayList绑定到thymeleaf之前,请为其设置大小!我拯救了我的一天。谢谢你。

我喜欢这个控制器

@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";
        }
 类似资料:
  • 我的视图中有一个向控制器发送对象的表单,但问题是,如果我发送的对象超过256个,就会出现异常: 所以我在想为什么会有这样的限制,于是我找到了这个话题:https://stackoverflow.com/a/24699008/4173394 但它似乎对我不起作用(可能是我的一个坏习惯)。 下面是我的结构:我的视图名为createUpdate.vm,并像这样发布我的表单: 我在FollowerFile

  • 我是百里香菜鸟。我试图创建一个简单的crud应用程序。我试图在删除按钮上删除客户类的对象。我如何使用百里香叶为调用deleteUser的方法设置参数(例如- id)。这是我的控制器。 以下是我的看法。

  • 我有窗体和相应的控制器,对象列表被传递给它们。 实体类: 控制器: 形式: 我假设表单中的百里叶th:each循环变量不能是th:object=${ent2}(因为如果我这样做,select form返回null)。而th:value="${ent2.name}返回字符串值。所以我不得不将@RequestParam(th:value)发送给“save”方法。但是在这种情况下,我必须对数据库进行额外

  • seleccion“对象它是一个实体,具有我从Ajax发送的JSON的一些属性,”seleccionados“是一个列表,保存接收到的数组,但当我发送它时,obj参数总是返回一个空对象,Ajax发送错误函数,我认为问题是我在向对象发送数组,但我不知道如何解决它 选择对象模型:

  • 问题内容: 我必须将数据从html页面(带有很少输入文本字段的简单形式)发送到页面控制器,然后再发送到数据库。我正在使用3.0版的百里香2.0.17。我搜索并检查了一些解决方案,但是没有用。也许有人遇到了同样的问题,并找到了一些好的解决方案。请帮忙。谢谢 问题答案: 如本教程所建议,你需要使用,并在中创建一个表单。 看起来像这样: 控制器: HTML: Foo.java: 希望这可以帮助。

  • 我有这个代码,但它不起作用(我认为它是th:action=“@{/employee}”,因为它想从我这里输入html href)对不起我的英语)) 如果你知道,帮帮我,pleace))) 4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.2.发布.... 1.8 在此输入图像说明