繁体   English   中英

如何将对象列表发送到 spring 从动态表启动 controller,其中项目由 jquery 通过单击按钮添加到表中

[英]How to send a list of objects to the spring boot controller from a dynamic table where items are added to the table by jquery through a button click

在我的 spring 引导项目中,有一部分用户必须输入他的银行详细信息(选择银行名称、分行名称、输入帐号)。 还有一个表,在用户单击“添加银行”后,将使用 jquery 将一行添加到表中。这些表行还隐藏了一些输入类型。 实际上,我必须将表中的输入隐藏值发送到 controller 并将这些值保存在数据库中。 我曾尝试使用列表来做到这一点,但无济于事。 有没有其他方法可以实现这一目标。 还有我如何将表格行绑定到 Jquery 中的 Controller。下面是我的 jquery 和 controller 代码

$('#Addbank').click(function() {
    alert($('#bank').children().length);
    if ($('#banktable').children().length == 0)
        $('#banktable').append("");
    $('#banktable').append("<tr><td>" + $('#Bank option:selected').text() +"<input type='hidden' value="+$('#Bank').val() +">"+ "</td><td>" + $('#Branch option:selected').text() +
        "</td><td>" + $('#accno').val() +"<input type='hidden' value="+ $('#accno').val()+ "</td><td><button type='button' class='btn' value='delete'>Delete</button></td></tr>");
})

controller 的部分,我在添加到 model 之前初始化列表

appl_banks = new BankDto();
        for (int i = 0; i <= 50; i++) {
            appl_banks.addBank(new Appl_bank());
            System.out.println(appl_banks);
        }

表格代码HTML

<table class="table table-hover" id="banktable">
            <tr>
                <th>Bank Name</th>
                <th>Branch Name</th>
                <th>Account Number</th>
            </tr>
            <tbody>
                <tr th:each='b,item:${applbank}'>
                    <td><input type='hidden'
                        th:value='*{applbank[__${item.index}__].bankcd}'></td>
                    <td><input type='hidden'
                        th:value='*{applbank[__${item.index}__].branchcd}'></td>
                    <td><input type='hidden'
                        th:value='*{applbank[__${item.index}__].acno}'></td>
                </tr>
            </tbody>
        </table>

我的包装纸 class

public class BankDto { private List<Appl_bank> appl_banks;

public BankDto() {
    this.appl_banks=new ArrayList<>();
    // TODO Auto-generated constructor stub
}

public BankDto(List<Appl_bank> appl_banks) {
    super();
    this.appl_banks = appl_banks;
}

public List<Appl_bank> getAppl_banks() {
    return appl_banks;
}

public void setAppl_banks(List<Appl_bank> appl_banks) {
    this.appl_banks = appl_banks;
}
public void addBank(Appl_bank appl_bank)
{
    this.appl_banks.add(appl_bank);
}

}

银行明细表银行明细表应提交给controller

表格和来源

我已经设法通过为隐藏的输入字段赋予相同的名称并通过 Controller 中的数组访问它们来解决这个问题。

Jquery 部分(插入了同名的隐藏输入字段)

$('#banktable').append("<tr><td>" + $('#Bank option:selected').text() +
        "<input type='hidden' name='bankcd' value="
        + $('#Bank').val() + "></td><td>"
        + $('#Branch option:selected').text() +
        "<input type='hidden' name='branchcd' value="
        + $('#Branch').val() + "></td><td>"
        + $('#accno').val() +
        "<input type='hidden' value="
        + $('#accno').val() +
        " name='accno'></td><td>"
        + $('#actype option:selected').text() +
        "<input type='hidden' name='actype' value="
        + $('#actype ').val() + "></td><td><button type='button' class='btn' value='delete'>Delete</button></td></tr>");
    str = str + $('#Bank').val();
    $('#bankid').val(str);
})

如何访问 Controller 中的输入字段名称

@RequestParam(value = "bankcd") String bankcd[]

希望帖子可以帮助陷入此错误的人:D

暂无
暂无

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

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