因此,我已经设置了与弹簧幅流程的向导界面,逐渐填充单一形式的对象/模型。 它工作正常的具有填充单个String或基本属性和一个字符串数组(从一个复选框接口)的前几个步骤。
然后,我有一个List<String>
属性。 它可以正确显示,与正确的初始化值的多个文本框。 但是,当我修改浏览器上的文本框和提交,值不承担form bean的效果。 它仍然有初始值。
下面是详细的设置:
在启动网络流量,其创建bean:
<on-start>
<evaluate expression="new mypackage.MyFormBean()" result="flowScope.myFormBean" />
</on-start>
这里是我的form bean的相关部分:
public class MyFormBean implements Serializable {
...
private List<SlotBean> slots;
...
public List<SlotBean> getSlots() {
return slots;
}
public void setSlots(List<SlotBean> slots) {
this.slots= slots;
}
...
}
public class SlotBean {
...
private int quantity;
...
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity= quantity;
}
...
}
我有一系列的视图状态与简单的字符串或数字字段绑定被初始化,显示和存储,而不问题的形式建立我的网络流量。
此视图状态产生任何数量SlotBean对象然后初始化量与2。这些被设置为槽属性。
<view-state id="generate-criteria" model="disciplineCatalogue">
...
<transition on="next" to="slots-grid">
<evaluate expression="myService.generateSlots(myFormBean)"/>
</transition>
...
</view-state>
这里是JSP片段。 它所做的就是渲染了一堆文本框。 还有一个下一个按钮:
<form:form id="slotsGrid" modelAttribute="myFormBean" action="${flowExecutionUrl}">
...
<c:forEach var="slot" items="${myFormBean.slots}" varStatus="idx">
<form:input path="slots[${idx.index}].quantity" />
</c:forEach>
...
<button type="submit" id="next" name="_eventId_next">Next</button>
...
</form:form>
上面的代码与所述初始值(2)正确地显示。 它产生多个文本框象下面这样:
<input id="slots0.quantity" name="slots[0].quantity" type="text" value="2"/>
所以,当这个页面在浏览器上,我更改数量文本框的值不同的值,然后单击“下一步”按钮。 在我的浏览器的网络调试器,我看到表单值被发送到服务器:
slots[0].quantity:3
slots[1].quantity:1
slots[2].quantity:2
这里是下一个按钮相关的Web流条目。
<view-state id="slots-grid" model="myFormBean">
<binder>
...
<binding property="slots" />
</binder>
...
<transition on="next" to="finished">
<evaluate expression="myService.create(myFormBean)"/>
</transition>
...
</view-state>
于是我穿上了一个破发点myService.create(myFormBean)
方法,它表明所有数量字段仍设置为原来的“2”。 新的价值观不结合myFormBean.slots
。
你有什么可以在我的建立,看上去错看?
感谢您的任何时候都可以投入到这个
Spring框架3.1.1
春Webflow的2.3.1
Tomcat的6.0.18
Eclipse的靛蓝
跨发表于: http://forum.springsource.org/showthread.php?127809-Collection-List-property-won-t-bind-or-update-on-form-submit