在我的春季启动项目中,有一个部分用户必须输入他的银行详细信息(选择银行名称,分行名称,输入账号)。还有一个表格,在用户点击"添加银行"后将使用jquery向表中添加一行。这些表行还隐藏了一些输入类型。实际上,我必须将输入隐藏值从表发送到控制器并将值保存在数据库中。我试过用清单来做这件事,但无济于事。有没有别的方法可以让我做到这一点。以及如何在Jquery中将表格行绑定到控制器。下面是我的jquery和控制器代码
$('#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>");
})
在添加到模型之前初始化列表的控制器部分
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>
我的包装类
公共类BankDto {私人List
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);
}
}
银行详细信息表应提交给控制器的银行详细信息表
表和源
我已经设法解决了这个问题,给隐藏的输入字段相同的名称,并通过在控制器中访问它们作为一个数组。
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);
})
如何访问控制器
中的输入字段名称@RequestParam(value = "bankcd") String bankcd[]
希望这篇文章能帮助那些被困在这个错误中的人:D