繁体   English   中英

将 thymeleaf 表值发送到 controller

[英]Send thymeleaf table value to controller

我想根据按钮单击使用 ajax 将我的 thymeleaf 表行发送到 controller。 下面是我到目前为止的尝试

<button id="sisi" type="button" class="btn btn-primary" th:text="#{aji}">

<tr id="rikaList" th:each="rika:${allRikas}">
     <td th:text="${rika.customer.customerNumber}"></td>
     <td th:text="${rika.customer.customerName}"></td>
     <td th:text="${rika.customer.nicNo}"></td>
</tr> 

<script type="text/javascript">
    $("#sisi").on('click', function () { 
        var contents = $("#rikaList").val();
        $.ajax({
            type: 'GET',
            url: "/bow/generateReport/" + contents,
            data: {},
            success: function (response) {

            }
        });
    })
</script>  

下面你可以看到我的 controller

@GetMapping(path = "/bow/generateReport/{rikaList}")
public void getCustomerByBranch(@PathVariable List<Rika> rikaList) {

}

我不知道我是否了解您想要做什么,但我认为您应该使用 POST 并将列表发送到正文中。

Controller

@PostMapping(path = "/bow/generateReport")
public void getCustomerByBranch(@RequestBody List<Rika> rikaList) {

}

JS:

var rikaList = [] //create the list with values you need
var request = $.ajax({
    url : '/bow/generateReport',
    type : 'POST',
    data : JSON.stringify(rikaList),

    ...
});

如何创建列表:

您已经用 id 定义了 tr,也许您想将 id 放入父级,因为 th:each 会用我认为的 id 重复 tr。 所以,用 id 代替标签:

var rikaList = []
    $('#rikaList > tbody > tr').each(function(index, tr) {
        var rika = {
            customerNumber: tr.cells[0].innerText, 
            customerName:tr.cells[1].innerText, 
            nicNo:tr.cells[2].innerText}
        rikaList.push(rika)
    });

会有更好的方法来遍历表,但如果结构始终相同,您可以创建 object 列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM