Javascript 动态添加Spring MVC JSP表单:使用JS输入,给出绑定错误
我有一个动态添加的代码块 下面是我正在使用的代码-Javascript 动态添加Spring MVC JSP表单:使用JS输入,给出绑定错误,javascript,jquery,spring,forms,jsp,Javascript,Jquery,Spring,Forms,Jsp,我有一个动态添加的代码块 下面是我正在使用的代码- <form:form role="form" method="post" id="addForm" action="/data/SomeAction" modelAttribute="someModel"> <div id="rowCabin1"> <div id="rowCabinData1"> <div class="row" id="cabinRow
<form:form role="form" method="post" id="addForm" action="/data/SomeAction" modelAttribute="someModel">
<div id="rowCabin1">
<div id="rowCabinData1">
<div class="row" id="cabinRow1">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
<div class="form-group">
<form:input path="test" placeholder="Name" class="form-control" style="width:100%" />
</div>
</div>
</div>
</div>
</div>
</form:form>
下面是javascript
$().ready(function() {
var i=2;
$("#addRowCabin").click(function(){
$('#rowCabin1').append('<div id="rowCabinData'+i+'"><div class="row" id="cabinRow1"><div class="col-xs-12 col-sm-12 col-md-6 col-lg-6"><div class="form-group"><form:input path="test" placeholder="Name" class="form-control" style="width:100%" /></div></div></div></div>');
i++;
});
$("#delRowCabin").click(function(){
if(i>2){
$("#rowCabinData"+(i-1)).remove();
i--;
}
});
});
$().ready(函数()){
var i=2;
$(“#addrowcain”)。单击(函数(){
$('#rowCabin1')。附加('');
i++;
});
$(“#Delrowcain”)。单击(函数(){
如果(i>2){
$(“#rowCabinData”+(i-1)).remove();
我--;
}
});
});
现在,当尝试加载页面时-
ERROR: org.springframework.web.servlet.tags.form.InputTag - Neither BindingResult nor plain target object for bean name 'test' available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'test' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144)
错误:org.springframework.web.servlet.tags.form.InputTag-bean名称“test”的BindingResult和普通目标对象都不能作为请求属性使用
java.lang.IllegalStateException:bean名称“test”的BindingResult和普通目标对象都不能作为请求属性使用
位于org.springframework.web.servlet.support.BindStatus。(BindStatus.java:144)
我的直觉是,这是因为表单:输入不是表单:表单标签本身的一部分。但是,由于我在表单标签中添加了内容,所以情况不应该是这样
请建议
AJ是jsp标记,在服务器上的请求处理过程中对其进行评估。不能使用javascript添加它。如果javascript是JSP的一部分,那么这就是它在加载时失败的原因
而是查看生成的HTML现有输入id和名称的外观,并附加原始HTML输入标记
或者更好地在JSP中使用c:forEach围绕字段集合,并通过AJAX请求添加新的动态字段
这里有一篇关于绑定集合的好文章:即使没有单击加号按钮“addRowCabin”,也会出现此问题,即即使在页面加载时。您的“someModel”对象是否有一个名为test的字段,其中包含getter和setter?是的,它确实有一个包含getter/setter的字段。只有JS部分给出了这个问题,而不是原始表单本身。